關於white-space、word-break和break-word

一直以來都只是知道這三個屬性都可以在某種情形下控制是否換行,但具體該使用哪一個屬性不是很清楚,實戰時就一個個試,哪個管用用哪個,今天整理了一下這三個屬性具體的意義。

一、white-space

white-space 是用來設置如何處理元素內的空白的,這裏的空白不僅僅指的空格,還包括換行符,所以它才能對文本是否換行有所控制。他的可選值和對應的描述如下:

1.normal:默認。空白會被瀏覽器忽略。也即是我們通常所知的連續的空白會合併爲一個空格,行首的空格會完全忽略

2.pre:空白會被瀏覽器保留。其行爲方式類似 HTML 中的 <pre> 標籤。

3.nowrap:文本不會換行,文本會在在同一行上繼續,直到遇到 <br> 標籤爲止。

4.pre-wrap:保留空白符序列,但是正常地進行換行。實際使用時跟pre作用類似

5.pre-line:合併空白符序列,但是保留換行符。

二、word-wrap

word-wrap 屬性允許長單詞或 URL 地址換行到下一行。他的可選值和對應的描述如下:

1.normal:只在允許的斷字點換行(瀏覽器保持默認處理)。即使單詞長度超過容器寬度也不換行。

2.break-word:在長單詞或 URL 地址內部進行換行。

三、word-break

word-break 屬性規定自動換行的處理方法。他的可選值和對應的描述如下:

1.normal:使用瀏覽器默認換行規則

2.break-all:允許在單詞內換行。

3.keep-all:只能在半角空格或連字符處換行。

單從介紹來看,word-wrap:break-word和word-break:break-all似乎是一樣的,都是允許單詞內換行,但兩者有着很重要的不同之處。

首先要明確一點,word-wrap:break-word是針對長單詞或者連續字符串的,它只有在單個單詞長度超過容器寬度的時候纔會起作用。

而word-break:break-all不一樣,它是針對一行文字的,normal下,當一行文本超過容器寬度時會將最後一個單詞放到下一行顯示,而break-all會將最後一個單詞斷行顯示,以最大程度的鋪滿第一行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章