標籤:

css: 長單詞怎麼斷行好呢?

就是想問,網站的長單詞(超出容器寬度)各位是怎麼處理的呢?

我知道word-wrap: break-word或者hyphens(靠特殊橫杠分斷)

據我觀察外國網站基本是不處理的,超出就超出。難道就沒有很好的方法嗎

未來又可能會用哪種方式處理長單詞呢?


容器較窄的情況下,為了提高空間利用率以及美觀,可以考慮用 hyphens 屬性(可以參考印刷品,比如字典的每一欄都比較窄,往往會加 hyphen 處理折行)。如果需要兼容老瀏覽器可以使用 Hyphenopoly.js 之類的庫。注意因為 hyphenation 這個東西是語言相關的,所以庫也會比較大。

容器較寬時可以考慮不處理,自動換行。


Unicode 有一個 SHY 字元,如果只有一兩個長單詞的話可以插到 Hyphenation point 上。

認真地做 Hyphenation 可以參考 Knuth-Liang 演算法( @李阿玲 )。

CSS Hyphens 我記得有些瀏覽器處理不了 Non-dictionary word,另外 Hyphenation 都比較依賴 Language Tagging,所以記得寫 lang 屬性。


hyphens: auto 就好了 (盡量換行而不 hyphen, 但如果一個詞獨自就能超出一行就 hyphen)

舊瀏覽器就 break-all , break-word 加 display: inline-block


這種東西,js控制啊,substring啊 然後加點點點。

其實幾乎所有模板都提供了類似substring的功能啊,把字數顯示控制在一定範圍內。

css控制,兼容性非常不好,而且麻煩,在很多設備上,下一行的字頂部還能漏出來點。得計算好行高字體大小防止下一行漏出點頂部,多麻煩


推薦閱讀:

現在國外做網站是用 DIV + CSS,還是 table?
你的網站可以一鍵變色嗎?
一些編寫css的建議
CSS 設計理念
html css php js之間的關係?

TAG:前端開發 | CSS |