[精讚] [會員登入]
9672

[HTML] CSS中的折字換行或不換行(防止容器破壞)

使用者留言時故意來用一串長長的且沒有任何空白的長字串,把你的容器破壞得很難看...

分享此文連結 //n.sfs.tw/10300

分享連結 [HTML] CSS中的折字換行或不換行(防止容器破壞)@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2021-01-14 15:44:32 最後編修
2016-11-26 11:41:22 By 張○○
 

自動目錄

在html最怕使用者留言時故意來搗蛋,用一串長長的字中間沒有任何空白的長字串,例如:

thisisatestbookthatisachart-------likethisshkhjkaruewknczxvjkruqtjnvzxcj

這種長長的字串往往會造成容器的破壞。因此對付這種沒有空白鍵的字串,就要強制換行,可以用word-wrap 和 overflow這兩個屬性

word-wrap: break-word; overflow:hidden;

word-wrap 屬性說明

  • break-word:可以任意斷字,不依循音節規則。
  • normal:長字會維持原狀,超出邊界,此為預設值。
  • inherit:繼承父元素特徵。
  • break-all: 可以任意斷字,不依循音節規則。
  • anywhere: 等同 break-all 
  • keep-all: 不可斷字

overflow 屬性說明

  • overflow: auto; /*預設使用捲軸 ie下,長串會自動折行。ff下,長串會被遮蓋 */
  • overflow: hidden; /*隱藏溢出範圍的內容*/
  • overflow: scroll; /*使標籤元素產生捲軸*/
  • overflow: visible; /*顯示全部忽略區塊大小*/
  • overflow: inherit; /*繼承父元素的可見性*/

另一種情況就是內容只要一行,不要自動換行,省去切字的麻煩。

white-space: nowrap;

再來可以使用white-space來對空白字元的行為作規範:

white-space 屬性說明

  • normal:連續的空白字都縮減為一個空白,長行遇到右邊界會跳行分為兩行,此為預設值。
  • pre:不縮減空白字,維持原狀。
  • pre-line:Firefox, Safari, Chrome 的定義是,連續的空白字會縮減為一個空白;跳行字(newline)保留,會跳行;長行也會跳行。IE 的定義是,連續的跳行會保留。
  • pre-wrap:Firefox, Safari, Chrome 的定義是,不縮減空白字;跳行字會跳行;長行也會跳行。IE 的定義是,連續的跳行字會縮減為一個跳行。
  • nowrap:連續的空白字會縮減為一個空白,不跳行。
  • inherit:繼承父元素的特徵值。

我可以解釋~~

補充說明

1. 使用特別的tag <wbr> 來處理長文字斷行的問題

2. 對中文(CJK)字來說,word-wrap 無論怎麼設置,都是會斷字,因為中文每個字都是獨立的,所以無論設定成 break-all或keep-all,都沒什麼差別。

3. overflow-wrapword-wrap是相同的。

參考資料

[1] OECSPACE http://www.hsiu28.net/style/style_11.php

[2] 螞蟻的css http://ant4css.blogspot.com/2009/01/whitespace.html

[3] https://developer.mozilla.org/ja/docs/Web/CSS/word-break


原文 2011-10-23 10:59:40

END

你可能感興趣的文章

[CSS] 將多張圖片合併,製作css spirte 網站中有很多的小圖,如果能把他們合併後再用CSS取用,就能大幅的提升網路效能。

[CSS] HTML 畫出粗外框表格的方法 (粗框表格) 在畫表格的時候,習慣上表格的外框要比內部的線條來得粗,不但比較美觀,而且看起來比較完整

[HTML] CSS中的折字換行或不換行(防止容器破壞) 使用者留言時故意來用一串長長的且沒有任何空白的長字串,把你的容器破壞得很難看...

表格如何選取一欄(選取一直行) 表格中要指選擇一列很容易,直接叫用的標籤即可,但是要選取一欄呢?

CSS 的 !important 意義 網頁的前端工程師非常頭痛的事,就是同時要處理 IE和 FF等不同的瀏覽器,更糟的是 IE 又分成了 6 7 8三種版本,

[HTML] 影像地圖 使用HTML的MAP標籤製作影像地圖

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

沒有非誰做不可的事,也沒有不可被取代的人 沒有非誰做不可的事,也沒有不可被取代的人

[札記] 2016.7~12月札記 札記,只是札記

[MAC] 安裝APACHE+PHP OS Darwin OpenIDMac1deAir 15.6.0 Darwin Kernel Version 15.6.

[AS3] 物件加上超連結的方法 物件加上超連結,可讓使用者點擊的方法

[MYSQL] 設定字串欄位的預設值 新增表格的時候,字串欄位給予預設空值;數字欄位給預設數值;日期欄位給空值。