国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

文字處理之二:換行及word-break和word-wrap屬性

wangxinarhat / 2324人閱讀

摘要:英文換行來到英文,情況就要復雜一些。在英文中有單詞的概念,所以在換行時就得考慮單詞的完整性。上面介紹的值,主要也是針對英文的,漢字還是按照瀏覽器的默認行為,裝不下就換行。最后顯示時,英文還是按照默認行為,中文變成了不換行。

上一篇博客中介紹white-space屬性時聊到了換行,這一篇介紹換行的細節。

瀏覽器的默認行為

瀏覽器的換行行為,對于中文和英文存在一些差別。

中文換行

正如上一篇博客中所說的,中文換行比較簡單,這一行放不下就換行。除了中文之外,韓文和日文的處理也是一樣的。這三種文字合在一起就是MDN介紹word-break屬性時所說的CJK(Chinese, Japanese, Korean的縮寫)。

英文換行

來到英文,情況就要復雜一些。在英文中有單詞的概念,所以在換行時就得考慮單詞的完整性。

瀏覽器按照空格來識別單詞,默認情況下,瀏覽器不會在單詞內換行

thisisalonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglongword

我們在p標簽內部放了一些英文字母,這些字母之間并沒有用空格來分隔開來,這就像文言文沒有用標點符號斷句一樣。所以,就如同你看不懂沒有斷句的文言文,瀏覽器也看不懂沒有用空格分隔的英文。于是瀏覽器在處理時,就會把這一長串英文只是當成一個很長很長的單詞,只有一個單詞也就不會換行,因為默認的換行只會在單詞之間。

當一行放不下時,瀏覽器會嘗試把最后一個單詞放到下一行,如果下面這一整個空行還是放不下這個單詞,那么就會任由這個單詞超出容器,反正默認情況下瀏覽器是不會把單詞拆開的。

this is a longlonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglongword

最后顯示時,就會把后面這個長單詞放到下一行,然后任由其超出容器:

word-break屬性

從上面的兩點看到,瀏覽器已經在很努力的換行,從而盡量讓文字不要超出容器了。但即使是這樣,對于較小的容器中存放的長單詞,當整個一行還放不下一個單詞是,瀏覽器也是無能為力,畢竟瀏覽器要保證單詞的完整性,不敢隨隨便便把一個單詞給拆了。但是,word-break屬性就賦予了瀏覽器拆單詞的權力。

word-break:normal:這是默認值,也就是瀏覽器的默認行為

word-break:break-all:能把all都break掉,所有的東西都能拆,所以,單詞隨便拆

this is a longlonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglongword

這樣瀏覽器在排版時,就完全可以把字母當成拆分單位,一個字母一個字母的往上放,放不下時就把字母放到下一行。可以理解成,此時就沒有單詞的概念了,只有字母。

![word-break:break-all]][3]

word-break:keep-all:上面在介紹瀏覽器的默認行為時,CJK字符和英文是分開,之所以這樣,是因為word-break屬性對于中英文的行為也是分開的。上面介紹的break-all值,主要也是針對英文的,漢字還是按照瀏覽器的默認行為,裝不下就換行。對于中文來說,沒有拆分不拆分,只有換行不換行。keep-all就是讓中文不要換行,此時英文還是按照瀏覽器的默認行為來。

this is a longlonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglongword 這是中文這是中文是中文這是中文這是中文這是中文是中文這是中文這是中文這是中文是中文這是中文這是中文這是中文是中文這是中文這是中文這是中文是中文這是中文這是中文這是中文是中文這是中文這是中文這是中文是中文這是中文

注意這里我在中英文之間加了個空格,否則瀏覽器會把后面的中文頁當成是英文單詞的一部分。最后顯示時,英文還是按照默認行為,中文變成了不換行。

word-break:break-word:在MDN上,只會介紹前面三個屬性,因為只有前三個才是標準的,而break-word是非標準的。如果一定要使用這個值,就需要注意下瀏覽器的兼容性,其最后顯示的效果,跟下面介紹的word-wrap:break-word基本一致,這里不再多說,看下面吧。

word-wrap屬性

word-break:break-all在拆英文單詞時,細看一下,當longlonglon...longword這個單詞在第一行末尾放不下時,其實是分了兩步:

以字母為單位處理,盡量將這個長單詞的字母往第一行放,能放多少放多少

后面連單個字母都放不下時,再換行,放其他字母。

word-wrap:break-word則不同,他會首先直接換行,放單詞,第二行放不下,再拆單詞

this is a longlonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglonglongword

與上面的word-break:break-all的圖對比一下就明白了,拆單詞也是拆單詞,只不過我先換到下一行再拆。

另一個屬性值是word-wrap:normal,這就是默認值,對應瀏覽器的默認行為。

word-breakword-wrap很容易弄混,所以在CSS3中,word-wrap已經改成了overflow-wrap,不過考慮兼容性,還是用word-wrap的比較多。

總結一下

word-break:break-allword-wrap:break-word這兩個屬性,都是考慮拆英文長單詞的,但是拆分的方法有點不一樣。另外word-break:keep-all還可以控制中文。其實想想,還是中文的事少,沒有拆分的顧慮,只用考慮換行不換行就可以了。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/116373.html

相關文章

  • 談談如何用CSS處理文本格式

    摘要:一個長單詞超出整個容器寬度時是否換行必須注意到,這是一個長單詞便超出容器寬度的情況,而且只需考慮英文,中文沒有此特性。規定如何處理內容溢出容器屬性作用于型元素上。 前言 文本方面的CSS內容不少,但只要是用過一下office word來編輯過文章的童鞋都能輕易理解其中的大部分。那么,今天僅僅來談談其中最復雜的部分——文本格式。 處理換行、空格和Tab:white-space 眾所周知,...

    source 評論0 收藏0
  • CSS 文本控制

    摘要:學習一些文本控制的屬性,防止做傻事。是的升級版,當單行文本過長,超過文本邊界時自動換行。否則,文本仍然左對齊。 one more time one more chance. 一歩重頭學前端, css入門。 學習一些 CSS 文本控制的屬性,防止做傻事。請大家對照下面列表檢驗下: 會的、不會的、似懂非懂的。筆者是一個也不會。 white-space text-overflow: ell...

    Taonce 評論0 收藏0
  • white-space、word-wrapword-break的簡單整理

    摘要:理解和的區別從易于區分和理解的角度,我引用了無雙在你真的了解和的區別嗎一文中對兩個屬性作用的解釋屬性用來標明是否允許瀏覽器在單詞內進行斷句,這是為了防止當一個字符串太長而找不到它的自然斷句點時產生溢出現象。 white-space 、 word-wrap 和 word-break 是決定段落中的文本如何展示的3個css屬性,屬性說明請點擊鏈接查看參考手冊。 white-space wh...

    Magicer 評論0 收藏0
  • css文本屬性

    摘要:的區別指字母間距,對英文和漢字,空格都有效,也可以叫字符間距。指單詞間距,對漢字不支持。時的效果壓縮空白和換行符,排滿不換行。縱向長度,可為負值,向下為正。陰影的模糊長度。的使用有了文字描邊,就有文字填充色。 1. letter-spacing,word-spacing,white-space的區別 letter-spacing指字母間距,對英文和漢字,空格都有效,也可以叫字符間距。 ...

    Tony_Zby 評論0 收藏0
  • CSS3 文本換行

    摘要:文本換行其實是個非常常用但并不起眼的特性。在中日韓文情況下,和有區別,見下圖中日韓文情況下,仍舊等于沒有設,瀏覽器選擇在文字或標點符號處換行。但設成后,將不再允許斷詞哪怕是中日韓文,只能像英語系一樣根據半角空格或標點來換行。 文本換行其實是個非常常用但并不起眼的特性。你什么都不用設,瀏覽器自動就會換行。例如英語,瀏覽器會根據容器尺寸,選擇在半角空格或連字符處換行。例如中文,瀏覽器會選擇...

    EasonTyler 評論0 收藏0

發表評論

0條評論

wangxinarhat

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<