天天看點

css控制強制換行

一、發現問題

一般情況下,元素擁有預設的white-space:normal(自動換行,不換行是white-space:nowrap),當錄入的文字超過定義的寬度後會自動換行,但當錄入的資料是一堆沒有空格的字元或字母或數字(正常資料應該不會有吧,但有些測試人員是會這樣子做的),超過容器寬度時就會把容器撐大,不換行。

二、解決方法

以div為例

div{

word-break:break-all; /* 支援ie和chrome,ff不支援*/

word-wrap:break-word; /* 以上三個浏覽器均支援 */

}

三、差別說明

① 對于截斷的了解

word-break:break-all 

div寬200px,它的内容就會到200px自動換行,如果該行末端有個英文congratulation單詞很長,會把單詞截斷,變成該行末端為conra,下一行為tulation。

word-wrap:break-word

例子與上面一樣,但差別就是它會把congratulation整個單詞看成一個整體,如果該行末端寬度不夠顯示整個單詞,它會自動把整個單詞放到下一行,而不會把單詞截斷掉的。

② 支援版本

word-break;break-all 支援版本:ie5以上 該行為與亞洲語言的normal相同。也允許非亞洲語言文本行的任意字内斷開。該值适合包含一些非亞洲文本的亞洲文本。

word-wrap:break-word 支援版本:ie5.5以上 内容将在邊界内換行。如果需要,詞内換行(word-break)也将發生。表格自動換行,避免撐開。

③ 文法

word-break : normal | break-all | keep-all

normal : 依照亞洲語言和非亞洲語言的文本規則,允許在字内換行

break-all : 該行為與亞洲語言的normal相同。也允許非亞洲語言文本行的任意字内斷開。該值适合包含一些非亞洲文本的亞洲文本

keep-all : 與所有非亞洲語言的normal相同。對于中文,韓文,日文,不允許字斷開。适合包含少量亞洲文本的非亞洲文本

word-wrap : normal | break-word

normal : 允許内容頂開指定的容器邊界

break-word : 内容将在邊界内換行。如果需要,詞内換行(word-break)也行發生說明:設定或檢索當目前行超過指定容器的邊界時是否斷開轉行。

四、注意點

①如果發現些其中一個來控制換行無效,就寫上兩個。如td{ word-break:break-all;word-wrap:break-word }

②word-break 用3c檢測會顯示問題的,導緻百度快照也會出問題,這個屬性opera firefox浏覽器也不支援word-break屬性可以用white-space:normal來代替,這樣在firefox和ie下就都能正确換行,而且要注意,單詞間的空格不能用來代替,不然不能正确換行。

原帖位址:http://www.cnblogs.com/mofish/archive/2011/02/16/1956263.html

繼續閱讀