首頁 >web前端 >css教學 >css自動換行的word-break與word-wrap的差別

css自動換行的word-break與word-wrap的差別

黄舟
黄舟原創
2017-06-20 11:02:111483瀏覽

這兩個東西是什麼,我相信至今還有很多人搞不清,只會死記硬背的寫一個word-wrap:break-word;word-break:break-all;這樣的東西來強制斷句,又或者是因為這兩個東西實在是太拗口了,長得又差不多,導致連背都很難背下來。

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

所以解決方法(以IE,chrome,FF為測試瀏覽器)有兩種寫法:

{
word-break:break-all; 
word-wrap:break-word;
}

兩種方法的區別說明:

1,word- break:break-all 例如div寬400px,它的內容就會到400px自動換行,如果該行末端有個英文單字很長(congratulation等),它會把單字截斷,變成該行末端為conra(congratulation的前端部分),下一行為tulation(conguatulation)的後端部分了。

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

html程式碼:

<div style="width:400px;background:#000;color:#fff;height:100px;margin:0 auto;word-break:break-all; ">
    congratulation congratulation congratulation congratulation congratulation congratulation</div>
    </br/>
    <div style="width:400px;height:100px;background:#000;color:#fff;margin:0 auto;word-wrap:break-word;">
    congratulation congratulation congratulation congratulation congratulation congratulation</div>

結果如圖所示:

css自動換行的word-break與word-wrap的差別

#自動換行word-break:break-all和word-wrap :break-word
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下就都能正確換行,而且要注意,單字間的空格不能用來代替,不然不能正確換行。

這樣就一目了然了。

以上是css自動換行的word-break與word-wrap的差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn