word-wrap同word-break的區別
white-space
- 作用於空格和回車,用於控制空格是否合併、回車是否可折行、句子太長是否在空格處折行
- 常用取值不同的作用
- normal: 多個連續的空格會被合併為一個,回車會被忽略,同時句子如果太長,會在空白處折行
- nowrap: 與normal不同的一點是如果句子長了也不會折行
- 常用的省略號的實現
.classA {
text-overflow:ellipsis;
white-space:nowrap;
overflow:hidden;
}
- 如果用了white-space為nowrap,設定其他的強制折行(word-break)是不起作用的,要將white-space設定為normal
word-wrap
- 作用於單詞上,控制超長單詞是否折行
- 常用取值的作用:
- normal: 單詞超長也不可折行,產生溢位
- break-word: 單詞超長會折行
word-break:normal | break-all | keep-all (詞內換行)
- normal:如果是中文則到邊界處的漢字換行,如果是英文整個詞換行,注意:如果出現某個英文字串長度超過邊界,則後面的部分將撐開邊框,如果邊框為固定屬性,則後面部分將無法顯示.
- break-all : 強行換行,將截斷英文單詞
- keep-all : 不允許字斷開。如果是中文將把前後標點符號內的一個漢字短語整個換行,英文單詞也整個換行,注意:如果出現某個英文.字串長度超過邊界,則後面的部分將撐開邊框,如果邊框為固定屬性,則後面部分將無法顯示.
本文列舉了相容 IE 和 FF 的換行 CSS 推薦樣式,詳細介紹了word-wrap同word-break的區別。
相容 IE 和 FF 的換行 CSS 推薦樣式
最好的方式是
以下是引用片段: word-wrap:break-word; overflow:hidden; |
而不是
以下是引用片段: word-wrap:break-word; word-break:break-all; |
也不是
以下是引用片段: word-wrap:break-word; overflow:auto; |
在 IE 下沒有任何問題,在 FF 下,長串英文會被遮住超出的內容。
word-wrap同word-break的區別
word-wrap:
normal Default. Content exceeds the boundaries of its container.
break-word Content wraps to next line, and a word-break occurs when necessary. 必要時會觸發word-break。
word-break:
normal Default. Allows line breaking within words. 好像是隻對Asian text起作用。
break-all Behaves the same as normal for Asian text, yet allows the line to break arbitrarily for non-Asian text. This value is suited to Asian text that contains some excerpts of non-Asian text.
keep-all Does not allow word breaking for Chinese, Japanese, and Korean. Functions the same way as normal for all non-Asian languages. This value is optimized for text that includes small amounts of Chinese, Japanese, or Korean.
總結如下:
word-wrap是控制換行的。
使用break-word時,是將強制換行。中文沒有任何問題,英文語句也沒問題。但是對於長串的英文,就不起作用。
break-word是控制是否斷詞的。
normal是預設情況,英文單詞不被拆開。
break-all,是斷開單詞。在單詞到邊界時,下個字母自動到下一行。主要解決了長串英文的問題。
keep-all,是指Chinese, Japanese, and Korean不斷詞。即只用此時,不用word-wrap,中文就不會換行了。(英文語句正常。)
ie下:
使用word-wrap:break-word;所有的都正常。
ff下:
如這2個都不用的話,中文不會出任何問題。英文語句也不會出問題。但是,長串英文會出問題。
為了解決長串英文,一般用word-wrap:break-word;word-break:break-all;。但是,此方式會導致,普通的英文語句中的單詞會被斷開(ie下也是)。
目前主要的問題存在於 長串英文 和 英文單詞被斷開。其實長串英文就是一個比較長的單詞而已。
即英文單詞應不應該被斷開那?那問題很明顯了,顯然不應該被斷開了。
對於長串英文,就是惡意的東西,自然不用去管了。但是,也要想些辦法,不讓它把容器撐大。
用:overflow:auto; ie下,長串會自動折行。ff下,長串會被遮蓋。
所以,綜上,最好的方式是word-wrap:break-word;overflow:hidden;而不是word-wrap:break-word;word-break:break-all;。
word-wrap:break-word;overflow:auto;在ie下沒有任何問題。在ff下,長串會被遮住部分內容。
另,測試程式碼如下:
1.htm
<style>
.c1{ width:300px; border:1px solid red}
.c2{ width:300px;word-wrap:break-word; border:1px solid yellow}
.c3{ width:300px;word-wrap:break-word;word-break:break-all; border:1px solid green}
.c4{ width:300px;word-wrap:break-word;word-break:keep-all; border:1px solid blue}
.c5{ width:300px;word-break:break-all; border:1px solid black}
.c6{ width:300px;word-break:keep-all; border:1px solid red}
.c7{ width:300px;word-wrap:break-word;overflow:auto; border:1px solid yellow}
</style>
.c1{ width:300px; border:1px solid red}
<div class="c1">asdasd
</div>
<div class=c1>
This is all English. This is all English. This is all English.
</div>
<div class=c1>
全是中文的情況。全是中文的情況。全是中文的情況。
</div>
<div class=c1>
中英文混排的情況。Chinese and English. 中英文混排的情況。Chinese and English.
</div>
<br>
.c2{ width:300px;word-wrap:break-word; border:1px solid yellow}
<div class="c2">
safjaskflasjfklsajfklasjflksajflksjflkasjfksafj
</div>
<div class=c2>
This is all English. This is all English. This is all English.
</div>
<div class=c2>
全是中文的情況。全是中文的情況。全是中文的情況。
</div>
<div class=c2>
中英文混排的情況。Chinese and English. 中英文混排的情況。Chinese and English.
</div>
<br>
.c3{ width:300px;word-wrap:break-word;word-break:break-all; border:1px solid green}
<div class="c3">
safjaskflasjfklsajfklasjflksajflksjflkasjfksafj
</div>
<div class=c3>
This is all English. This is all English. This is all English.
</div>
<div class=c3>
全是中文的情況。全是中文的情況。全是中文的情況。
</div>
<div class=c3>
中英文混排的情況。Chinese and English. 中英文混排的情況。Chinese and English.
</div>
<br>
.c4{ width:300px;word-wrap:break-word;word-break:keep-all; border:1px solid blue}
<div class="c4">
safjaskflasjfklsajfklasjflksajflksjflkasjfksafj
</div>
<div class=c4>
This is all English. This is all English. This is all English.
</div>
<div class=c4>
全是中文的情況。全是中文的情況。全是中文的情況。
</div>
<div class=c4>
中英文混排的情況。Chinese and English. 中英文混排的情況。Chinese and English.
</div>
<br>
.c5{ width:300px;word-break:break-all; border:1px solid black}
<div class="c5">
safjaskflasjfklsajfklasjflksajflksjflkasjfksafj
</div>
<div class=c5>
This is all English. This is all English. This is all English.
</div>
<div class=c5>
全是中文的情況。全是中文的情況。全是中文的情況。
</div>
<div class=c5>
中英文混排的情況。Chinese and English. 中英文混排的情況。Chinese and English.
</div>
<br>
.c6{ width:300px;word-break:keep-all; border:1px solid red}
<div class="c6">
safjaskflasjfklsajfklasjflksajflksjflkasjfksafj
</div>
<div class=c6>
This is all English. This is all English. This is all English.
</div>
<div class=c6>
全是中文的情況。全是中文的情況。全是中文的情況。
</div>
<div class=c6>
中英文混排的情況。Chinese and English. 中英文混排的情況。Chinese and English.
</div>
<br>
.c7{ width:300px;word-wrap:break-word;overflow:auto; border:1px solid yellow}
<div class="c7">
safjaskflasjfklsajfklasjflksajflksjflkasjfksafj
</div>
<div class=c7>
This is all English. This is all English. This is all English.
</div>
<div class=c7>
全是中文的情況。全是中文的情況。全是中文的情況。
</div>
<div class=c7>
中英文混排的情況。Chinese and English. 中英文混排的情況。Chinese and English.
</div>
出處:http://homepage.yesky.com/207/7707707.shtml
相關文章
- word-break 和 word-wrap 的區別
- 簡單理解 word-wrap、word-break 和 white-space 的區別
- word-wrap、word-break和white-space有什麼區別?
- 長沙前端培訓分享之word-break和 word-wrap的區別前端
- 區分 word-wrap/word-break/white-space
- CSS3中word-break和word-wrap有什麼區別?CSSS3
- 徹底搞懂word-break、word-wrap、white-space
- RestController和Controller的區別和異同RESTController
- 不同瀏覽器下word-wrap,word-break,white-space強制換行和不換行總結瀏覽器
- workman 和swoole 區別 和異同
- CSS word-breakCSS
- How to set word-wrap in VSCode?VSCode
- CSS3 word-breakCSSS3
- 有同學問我:Fetch 和 Ajax 有什麼區別?
- 【前端詞典】F5 同 Ctrl+F5 的區別你可瞭解前端
- LinkedList和ArrayList的區別、Vector和ArrayList的區別
- http和https的區別/get和post的區別HTTP
- ||和??的區別
- /*和/**的區別
- ??與?:的區別
- 蜂蜜的區別
- php語法同java語法的基本區別(例項專案需求,php才能熟)PHPJava
- 雙絞線,同軸電纜和光纖電纜之間的區別—Vecloud微雲Cloud
- UIModalPresentationStyle 各種型別的區別UI型別
- 值型別與引用型別的區別型別
- scala中:: , +:, :+, :::, +++的區別
- jquery $(this) 和this的區別jQuery
- JQuery this和$(this)的區別jQuery
- T和?的區別
- makefile =和:=的區別
- ++a和a++的區別
- @synthesize @dynamic 的區別
- CMM/CMMI 的區別
- ../和./和/的區別
- ./ 和sh 的區別
- JavaScript中的“=、==、===”區別JavaScript
- python 中 is, is not ,==, != 的區別Python
- == euqals hascode的區別