在開發中很容易遇到div中文字超出的問題,在此總結以下方法:
1. white-space :屬性設置如何處理元素內的空白。這個屬性聲明建立布局過程中如何處理元素中的空白符。所有瀏覽器都支持 white-space 屬性。注,任何的版本的 Internet Explorer (包括 IE8)都不支持屬性值 "inherit"。
| 值 | 描述 |
|---|---|
| normal | 默認。空白會被瀏覽器忽略。 |
| pre | 空白會被瀏覽器保留。其行為方式類似 HTML 中的 <pre> 標簽。 |
| nowrap | 文本不會換行,文本會在在同一行上繼續,直到遇到 <br> 標簽為止。 |
| pre-wrap | 保留空白符序列,但是正常地進行換行。 |
| pre-line | 合並空白符序列,但是保留換行符。 |
| inherit | 規定應該從父元素繼承 white-space 屬性的值。 |
2. word-break屬性規定自動換行的處理方法。通過該屬性,可以讓瀏覽器實現在任意位置換行。語法:word-break: normal|break-all|keep-all;
| 值 | 描述 |
|---|---|
| normal | 使用瀏覽器默認的換行規則。 |
| break-all | 允許在單詞內換行。 |
| keep-all | 只能在半角空格或連字符處換行。 |
3. 對於div進行強制換行
[1](IE瀏覽器)white-space:normal; 或 word-break:break-all;這里前者是遵循標准。
#wrap{white-space:normal; width:200px; } 或者 #wrap{word-break:break-all;width:200px;}
[2](Firefox瀏覽器)white-space:normal; 或 word-break:break-all; overflow:hidden;同樣的FF下也沒有很好的實現方法,只能隱藏或者加滾動條,當然不加滾動條效果更好!
#wrap{white-space:normal; width:200px; overflow:auto;} 或者 #wrap{word-break:break-all;width:200px; overflow:auto; }
4. 對於table強制換行
table-layout屬性用來顯示表格單元格、行、列的算法規則。
[1](IE瀏覽器)使用樣式table-layout:fixed;
[2](IE瀏覽器)使用樣式table-layout:fixed與nowrap;
[3] (IE瀏覽器)在使用百分比固定td大小情況下使用樣式table-layout:fixed與nowrap
[4](Firefox瀏覽器)在使用百分比固定td大小情況下使用樣式table-layout:fixed與nowrap,並且使用div。
強制不換行:div{white-space:nowrap;}
自動換行:div{ word-wrap: break-word; word-break: normal;}
強制英文單詞斷行:div{word-break:break-all;}
