一、瀏覽器自帶的自動換行
各瀏覽器自身都帶有自動換行功能,當瀏覽器顯示文本的時候會讓文本在瀏覽器或者div元素的右端自動換行。換行情況如下:
1.non-CJK:會在半角空格或者連字符(-)位置自動換行,不會在長單詞的中間換行
2.CJK(中日韓):可以在任何一個CJK字體后換行
3.CJK中包含non-CJK:non-CJK部分按 non-CJK情況處理進行換行處理
4.CJK中含有標點符號時,瀏覽器不會讓標點符號位于一個行的行首,會使標點符號和前一個字符組成一個整體進行換行。
二、word-break:
屬性及瀏覽器兼容
| value
| description
| IE
| FF
| Chrome& Safari
| Operanormal瀏覽器默認換行yesyesyesyeskeep-allCJK:不允許換行,non-CJK:與normal屬性相同,IE中(對于CJK:在半空格、連接符或者任何標點符號處換行),chrome&safari不支持(使用默認換行)yesyesnoyesbreak-all允許單詞內換行,IE(不允許標點符號位于行首),FF&Chrome&Safari(允許標點符號位于行首)yesyesyesyes
三、word-wrap:
1.取值:
normal:在半空格、連接符位置換行
break-word:允許在長單詞(如URL地址)內部斷行
2.支持所有瀏覽器
四、實例
<style type="text/css">
.box{width:100px;height:100px;border:2px solid #f00;color:#333;font:12px arial;margin-bottom:10px;}
.keepall{word-break:keep-all;}
.breakall{word-break:break-all;}
.breakword{word-wrap:break-word;}
</style>
<div class="box keepall">
自身都帶有自動換行功能啊,AAAAAA BBBBBBBBBBBBB,CCCCCCCCC,的右端自動換行。
</div>
此例中注意keep-all在不同瀏覽器中的兼容,特殊符號處的換行!
<div class="box breakall">
自身都帶有自動換行功能啊,AAAAAA BBBBBBBBBBBBB,CCCCCCCCC,的右端自動換行。
</div>
此例中注意逗號的位置!
<div class="box breakword">
自身都帶有自動換行功能啊,AAAAAA BBBBBBBBBBBBB,CCCCCCCCC,的右端自動換行。
</div>

五、word-break:break-all 與word-wrap:break-word區別?
看上圖即可說明
參考鏈接:
https://developer.mozilla.org/en-US/docs/Web/CSS/word-break