1. 程式人生 > >溢出容器換行問題

溢出容器換行問題

自動識別 例如 -h love 也不會 影響 wid 當前 OS

問題描述:容器定寬高後,漢字溢出會自動換行,但是數字和字母不會換行。

  因為計算機是通過空格或者“-”判斷字母或者數字到哪個地方為一個單詞或者數字,計算機“並不聰明”,因為它不會自動識別單詞,例如“Iloveyou”,人眼一看就知道這是三個單詞組成的一句話,但是計算機不會判斷,它找不到空格或者“-”就認為這是一個單詞,所以就算超出了容器也不會換行。

  這和一個css屬性有關:word-break;word-break 屬性規定自動換行的處理方法,常用的有三個值:normal,break-all和keep-all。

  1.normal,意思是使用瀏覽器的默認換行規則,具體是 ①對於漢字,超出容器寬度就會換行;②對於字母或數字,會找空格或者“-”來區分單詞或數,如果一直找不到就會在一行顯示下去,不換行。如果找到了空格,還會判斷空格後面的字母在容器當前行的剩余部分能不能容下,如果能在剩余的部分容下,就顯示在剩余部分,如果不能,那麽對不起,這座小廟不能容下後面的大佛,大佛需要找下一行容身。

技術分享圖片技術分享圖片

  2.break-all,允許在單詞內換行。這個屬性對漢字沒有影響,但是設置此屬性後會讓字母或者數字擁有和漢字一樣的換行規則,也就是超出容器寬度就會換行,並且是強制換行。從字面意思也能理解,break-all,打斷所有,不管換行的節點是不是一個完整的單詞,可在任意字符間斷行。

技術分享圖片技術分享圖片

3.keep-all,意思只能在半角空格或連字符處換行。我的理解是和normal沒區別。

個人總結筆記,絕知此事要躬行,有誤請指出,非常感謝!

溢出容器換行問題