word-break:break-all和word-wrap:break-word都是能使其容器如DIV的內容自動換行。
它們的區別就在於:
1,word-break:break-all 例如div寬200px,它的內容就會到200px自動換行,如果該行末端有個英文單詞很長(congratulation等),它會把單詞截斷,變成該行末端為conra(congratulation的前端部分),下一行為tulation(conguatulation)的后端部分了。
2,word-wrap:break-word 例子與上面一樣,但區別就是它會把congratulation整個單詞看成一個整體,如果該行末端寬度不夠顯示整個單詞,它會自動把整個單詞放到下一行,而不會把單詞截斷掉的。
3,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)也行發生說明:設置或檢索當當前行超過指定容器的邊界時是否斷開轉行。
對應的腳本特性為wordWrap。請參閱我編寫的其他書目。 語法: table-layout : auto | fixed 參數: auto : 默認的自動算法。布局將基於各單元格的內容。表格在每一單元格讀取計算之后才會顯示出來。速度很慢 fixed : 固定布局的算法。在這算法中,水平布局是僅僅基於表格的寬度,表格邊框的寬度,單元格間距,列的寬度,而和表格內容無關說明:設置或檢索表格的布局算法。對應的腳本特性為tableLayout。
建議:word-break 用3C檢測會顯示問題的,導致百度快照也會出問題-這個屬性OPERA FIREFOX 瀏覽器也不支持 word-break屬性可以用white-space:normal;來代替,這樣在FireFox和IE下就都能正確換行,而且要注意,單詞間的空格不能用 來代替,不然不能正確換行。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
給table 加上
table-layout:fixed;
word-break:break-all;
word-wrap:break-word;
border-collapse:collapse;
margin:0;
padding:0;
css屬性,並且td和table的width都要指定,就能解決ie7,8,firefox兼容問題。
其中,table-layout:fixed;固定表格大小,不被內容脹開
關於文字超出截斷問題,這個問題其實挺常見和基礎的問題。
屏幕的寬度是有限的,而文字的長度(特別是商品名稱的長度)是不固定的,而且摻雜這英文和符合等,當文字長度超過設定的寬度的時候怎么辦?
1,js或者后台程序截取。
優點:兼容性好,沒有其他異常情況出現;
缺點:不同的位置需要不同的處理。
2:直接overflow:hidden;
優點:很黃很暴力,效果直接;
缺點:最后一個字很容易截掉一半;
3.text-overflow: ellipsis
優點:在截斷后加“…”,現在各個瀏覽器已經支持;
缺點:只支持一行,多行的無法實現;
4:word-wrap:break-word;word-break:break-all;overflow:hidden;height:24px;line-height:22px
優點:
這個是我要說的重點。
word-wrap : normal | break-word
取值:
normal:
控制連續文本換行。
break-word:
內容將在邊界內換行。如果需要,詞內換行(word-break)也會發生。
說明:
設置或檢索當前行超過指定容器的邊界時是否斷開轉行。
word-wrap這個火狐谷歌的最新版是支持的。
word-break : normal | break-all | keep-all
參數:
normal : 依照亞洲語言和非亞洲語言的文本規則,允許在字內換行
break-all : 該行為與亞洲語言的normal相同。也允許非亞洲語言文本行的任意字內斷開。該值適合包含一些非亞洲文本的亞洲文本
keep-all : 與所有非亞洲語言的normal相同。對於中文,韓文,日文,不允許字斷開。適合包含少量亞洲文本的非亞洲文本
說明:
設置或檢索對象內文本的字內換行行為。尤其在出現多種語言時。
對於中文,應該使用break-all 。
word-break IE系是支持的。
這個兩個的作用是相同的,但兩個都寫是為了兼容各瀏覽器。其原理就是當超出容器邊界的時候文字斷行,而超出高度后隱藏,就不會出現“2”中截掉最后一個字一半的情況,而且支持多行。
缺點:只有火狐下有個bug,當中文和英文同時存在,而且當連續英文字過長時,英文字會集體換行,結果如下:
電腦
ssssssssssssssssssssssssssssss
解決辦法是js處理下連續的英文字。
但是這情況是較極端的情況,可以容忍。
-------------------------------------------------------------------------------------------------
表格換行代碼:
td{
white-space:pre-line;word-wrap: break-word; word-break: break-all;
}
white-space:pre-line; //合並空白符序列,但是保留換行符
word-wrap: break-word; //在長單詞或+URL+地址內部進行換行