日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
深入研究CSS文本換行
  • overflow-wrap
  • word-break
  • white-space
  • line-break
  • hyphens

1. overflow-wrap

overflow-wrap 用來(lái)說(shuō)明當(dāng)一個(gè)不能被分開(kāi)的字符串太長(zhǎng)而不能填充其包裹盒時(shí),為防止其溢出,瀏覽器是否允許這樣的單詞中斷換行。其屬性值有以下三種:

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),伊春企業(yè)網(wǎng)站建設(shè),伊春品牌網(wǎng)站建設(shè),網(wǎng)站定制,伊春網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,伊春網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

overflow-wrap: normal;
overflow-wrap: anywhere;
overflow-wrap: break-word;

(1)normal

屬性值為 normal 將使瀏覽器使用系統(tǒng)的默認(rèn)換行行為。因此,對(duì)于英語(yǔ)和其他相關(guān)書(shū)寫(xiě)系統(tǒng),換行符將出現(xiàn)在空格和連字符處。

從圖中可以看出,段落中有一個(gè)很長(zhǎng)的單詞溢出了容器,這是系統(tǒng)的默認(rèn)換行行為。

(2)anywhere

使用值 anywhere 將在字符串之間的任意點(diǎn)來(lái)進(jìn)行中斷,僅當(dāng)在其行上顯示單詞會(huì)導(dǎo)致溢出時(shí),瀏覽器才會(huì)中斷該單詞。如果單詞放在其行上時(shí)仍然溢出,它將在發(fā)生溢出的點(diǎn)處中斷該單詞。

可以看到,使用 overflow-wrap:anywhere 將溢出的單詞分解成文本塊,這樣就可以將其放入容器中。這里文本所在的容器寬度是固定的。

該屬性會(huì)影響其所在元素的 min-content 屬性大小計(jì)算。當(dāng)width設(shè)置為min-content時(shí)很容易看出來(lái):

.break-word {
width: min-content;
overflow-wrap: break-word;
}

.anywhere {
width: min-content;
overflow-wrap: anywhere;
}

效果如下:

可以看到,帶有overflow-wrap:break-word 的元素計(jì)算出的 min-content 就像單詞沒(méi)有被破壞一樣,因此它的寬度變成了最長(zhǎng)單詞的寬度。而帶有 overflow-wrap:anywhere 的元素,由于在任何地方都可能發(fā)生中斷,因此 min-content 最終成為單個(gè)字符的寬度。

注意,這種行為只有為文本所在容器的寬度設(shè)置為min-content時(shí)才會(huì)發(fā)揮作用,如果寬度設(shè)置為固定的值,那么anywhere 和 break-word 的表現(xiàn)是一致的。

另外需要注意,目前有些瀏覽器不支持該屬性:

(3)break-word

break-word 屬性表示如果行內(nèi)沒(méi)有多余的地方容納該單詞到結(jié)尾,則那些正常的不能被分割的單詞會(huì)被強(qiáng)制分割換行。

可以看到,文本在長(zhǎng)單詞的某個(gè)地方自動(dòng)換行了。如果文本所在容器設(shè)置了固定的寬度,就會(huì)在長(zhǎng)單詞溢出的地方換行。

(4)瀏覽器兼容性

overflow-wrap 屬性就是原來(lái)的word-wrap。word-wrap最初是一個(gè)沒(méi)有前綴的Microsoft擴(kuò)展。它不是CSS標(biāo)準(zhǔn)的一部分,盡管大多數(shù)瀏覽器都使用word-wrap這個(gè)名稱(chēng)來(lái)實(shí)現(xiàn)它。根據(jù)CSS3規(guī)范草案,瀏覽器應(yīng)將word-wrap視為overflow-wrap屬性的遺留名稱(chēng)別名,以確保兼容性。

2. word-break

word-break 屬性用于指定怎樣在單詞內(nèi)進(jìn)行斷行。我們可以使用該屬性在內(nèi)容發(fā)生溢出的確切位置拆分單詞并將其換行到下一行。下面是 word-break的屬性值:

word-break: normal;
word-break: break-all;
word-break: keep-all;
word-break: break-word;

需要注意,break-word 屬性值已經(jīng)被棄用,但是由于遺留原因,瀏覽器仍然支持它。指定該屬性與同時(shí)使用word-break: normal 和 overflow-wrap: anywhere 的效果是一樣的。

下面就來(lái)看看前三個(gè)屬性:

(1)normal

將 word-break 屬性的值設(shè)置為 normal 將應(yīng)用默認(rèn)的斷行規(guī)則:

可以看到,設(shè)置為 normal 時(shí),和不設(shè)置word-break時(shí)的效果是一樣的,這就是瀏覽器默認(rèn)的斷行行為。

(2)break-all

當(dāng)屬性值為 break-all 時(shí),對(duì)于 non-CJK (CJK 指中文/日文/韓文) 的文本,可在任意字符間斷行。

可以看到,長(zhǎng)單詞在溢出的位置將剩余的文本進(jìn)行了換行。使用 break-all 將在英語(yǔ)和其他相關(guān)語(yǔ)言系統(tǒng)中發(fā)生溢出的確切位置在兩個(gè)字符之間斷開(kāi)一個(gè)單詞。但是,它不會(huì)對(duì)中文、日文和韓文文本應(yīng)用相同的行為。因?yàn)?CJK 書(shū)寫(xiě)系統(tǒng)有自己的應(yīng)用斷點(diǎn)規(guī)則。

(3)keep-all

如果使用值 keep-all,即使內(nèi)容溢出,瀏覽器也不會(huì)將分詞應(yīng)用于 CJK 文本。應(yīng)用 keep-all 值的效果與非 CJK 書(shū)寫(xiě)系統(tǒng)的正常效果相同。簡(jiǎn)單來(lái)說(shuō)就是,像英語(yǔ)這種 CJK 文本不會(huì)斷行,像中文這種 Non-CJK 文本表現(xiàn)同 normal。

(4)瀏覽器兼容性

3. white-space

white-space 屬性是用來(lái)設(shè)置如何處理元素中的空白。其屬性值如下:

white-space: normal;
white-space: nowrap;
white-space: pre;
white-space: pre-wrap;
white-space: pre-line

下面來(lái)看看這些屬性值都有哪些作用。

(1)nowrap

當(dāng)我們將white-space的值設(shè)置為 nowrap 時(shí),可以防止文本自動(dòng)換行:

可以看到,這里文本并沒(méi)有換行,這時(shí)文本會(huì)在同一行上繼續(xù),直到遇到

標(biāo)簽為止。

(2)pre

當(dāng)我們將white-space的值設(shè)置為pre時(shí),文本之間的空白會(huì)被瀏覽器保留。其行為方式類(lèi)似 HTML 中的

標(biāo)簽。



What's worse, ignorance or apathy?
I don't know and I don't care.




What's worse, ignorance or apathy?
I don't know and I don't care.




What's worse, ignorance or apathy?
I don't know and I don't care.

樣式設(shè)置如下:

p {
white-space: pre;
}

pre {
/*
 會(huì)設(shè)置 font-family: monospace, 這里將其重置 */
font-family: inherit;
}

顯示效果如下:

(3)瀏覽器兼容性

4. line-break

line-break屬性可以用來(lái)處理如何斷開(kāi)帶有標(biāo)點(diǎn)符號(hào)的中文、日文或韓文文本的行。簡(jiǎn)而言之,該屬性可以用來(lái)處理過(guò)長(zhǎng)的標(biāo)點(diǎn)符號(hào)。

(1)anywhere

可以使用 line-break: anywhere 來(lái)使長(zhǎng)標(biāo)點(diǎn)符號(hào)進(jìn)行換行:

可以看到,overflow-wrap: break-word 和 line-break:anywhere 能夠保持內(nèi)容被包含在容器內(nèi),但是 word-break: break-all 在有長(zhǎng)標(biāo)點(diǎn)符號(hào)時(shí)就會(huì)發(fā)生溢出。

(2)瀏覽器兼容性

5.hyphens

hyphens 屬性告知瀏覽器在換行時(shí)如何使用連字符連接單詞??梢酝耆柚故褂眠B字符,也可以控制瀏覽器什么時(shí)候使用,或者讓瀏覽器決定什么時(shí)候使用。其斷字規(guī)則由語(yǔ)言決定,因此需要告訴瀏覽器使用哪種語(yǔ)言。這是通過(guò)在 HTML 中指定lang屬性來(lái)完成的:

This is just a bit of arbitrary text to show hyphenation in action.

(1)auto

當(dāng) hyphens 設(shè)置為 auto 時(shí),瀏覽器可以自由地在適當(dāng)?shù)臄嘧贮c(diǎn)自動(dòng)斷詞:

p {
-webkit-hyphens: auto; / * 用于 Safari */
hyphens: auto;
}

顯示效果如下:

(2)瀏覽器兼容性

6. 總結(jié)

  • 當(dāng)文本所在容器的寬度固定時(shí),可以使用 overflow-wrap: break-word; 和 overflow-wrap: anywhere; 來(lái)實(shí)現(xiàn)文本的自動(dòng)換行;如果容器寬度為 min-content,就只能使用 overflow-wrap: break-word; 實(shí)現(xiàn)文本換行;overflow-wrap: break-word;也可以用于長(zhǎng)標(biāo)點(diǎn)符號(hào)的換行。
  • word-break: break-all; 可以用于文本換行,但是該屬性不能使長(zhǎng)標(biāo)點(diǎn)符號(hào)換行;
  • white-space: nowrap; 可以用于防止文本自動(dòng)換行;
  • line-break: anywhere 可以用于將長(zhǎng)標(biāo)點(diǎn)符號(hào)進(jìn)行換行;
  • hyphens: auto; 可以用于使用連字符連接單詞。

參考:

https://codersblock.com/blog/deep-dive-into-text-wrapping-and-word-breaking/

https://blog.logrocket.com/guide-word-wrap-overflow-wrap-word-break-css/


文章名稱(chēng):深入研究CSS文本換行
URL地址:http://www.5511xx.com/article/ccsjedi.html