摘要:一個長單詞超出整個容器寬度時是否換行必須注意到,這是一個長單詞便超出容器寬度的情況,而且只需考慮英文,中文沒有此特性。規(guī)定如何處理內(nèi)容溢出容器屬性作用于型元素上。
前言
文本方面的CSS內(nèi)容不少,但只要是用過一下office word來編輯過文章的童鞋都能輕易理解其中的大部分。那么,今天僅僅來談?wù)勂渲凶顝?fù)雜的部分——文本格式。
處理換行、空格和Tab:white-space眾所周知,瀏覽器對HTML中的換行符是采取忽略政策的,因此一般推薦使用
來換行。另外,對于多個空格(space)以及Tab也只會認(rèn)作一個空格(space)來處理,因此當(dāng)需要用到多個空格的時候,就需要利用空格的實(shí)體字符—— 來強(qiáng)制顯示空格。
實(shí)際上,以上的這種種麻煩,CSS都可以輕易克服:white-space。
white-space: normal | pre | nowrap | pre-wrap | pre-line
下面來根據(jù)上面這表格來介紹一下white-space各值的含義:
New lines表示對換行符的處理,Spaces and tabs表示對多個空格及Tab的處理,Text wrapping表示文本是否會在文本內(nèi)容超出容器寬度時進(jìn)行自動換行。
當(dāng)white-space為normal(瀏覽器默認(rèn)值),即換行符無效(collapse)、多個空格及Tab被折疊(collapse)成一個空格來處理、文本內(nèi)容會自動換行。
當(dāng)white-space為nowrap時,文本內(nèi)容不自動換行(至于是強(qiáng)行突破容器還是截斷顯示則要視乎另一個CSS——overflow,下文詳述),其它表現(xiàn)與normal一致。
當(dāng)white-space為pre時,換行符有效、多個空格及Tab不會被折疊,文本不會自動換行。此屬性多用來展示程序代碼段,可以保留其中的換行及縮進(jìn),而事實(shí)上,的瀏覽器默認(rèn)樣式中就有white-space: pre;。
pre-wrap與pre-line看表格即知,不再詳述。
一個長單詞超出整個容器寬度時是否換行:word-wrap必須注意到,這是一個長單詞便超出容器寬度的情況,而且只需考慮英文,中文沒有此特性。
word-wrap: normal|break-word;
normal,長單詞不換行
break-word,長單詞自動換行
決定文本的換行點(diǎn):word-break當(dāng)一行的末尾已不能完整放下某個單詞A,那么就需要決定用哪種策略來放置這單詞A(肯定是英文了,中文沒這問題)了:
word-break: normal|break-all|keep-all;
normal,使用瀏覽器默認(rèn)的換行規(guī)則。
break-all,擠擠更健康,硬是讓單詞A擠上去,放不下的部分就換行到下一行繼續(xù)顯示。這實(shí)際上是沒有把這個單詞看做是一個整體,而是以字母作為最小可換行的單位:
keep-all,不擠不擠我就不擠,哪怕實(shí)際上這個單詞獨(dú)占一行也無法完整顯示,也要另起一行來顯示:
word-wrap 和 word-break這兩項(xiàng)CSS屬性非常類似,一是都管換行的,二是都針對英文。在我看來,word-break比word-wrap更徹底,因?yàn)橹灰O(shè)置word-break: break-all;,那么就從根本上否定了“拆分單詞”這一事實(shí),而是轉(zhuǎn)變?yōu)椤叭绾畏胖靡淮帜浮?,那么換行就是理所當(dāng)然的了。而word-wrap: break-word;實(shí)際上還是把單詞當(dāng)做是“單詞”來看待的,只是為了顯示效果委曲求全了。
規(guī)定如何處理內(nèi)容溢出容器*:overflow屬性作用于block型元素上。它規(guī)定了當(dāng)內(nèi)容元素溢出元素框時發(fā)生的事:裁剪內(nèi)容,使用滾動條來顯示 或 直接顯示超出部分 。
/* 默認(rèn)值。內(nèi)容不會被修剪,會呈現(xiàn)在元素框之外 */ overflow: visible;
典型如上文的:
/* 內(nèi)容會被修剪,并且其余內(nèi)容不可見 */ overflow: hidden;
硬是截掉超出容器部分的內(nèi)容:
/* 內(nèi)容會被修剪,瀏覽器會顯示滾動條以便查看其余內(nèi)容 */ overflow: scroll;
無論有無內(nèi)容溢出容器,都顯示滾動條;如有內(nèi)容溢出,通過滾動條可以查看溢出內(nèi)容:
/* 由瀏覽器定奪,如果內(nèi)容被修剪,就會顯示滾動條 */ overflow: auto;
若有內(nèi)容溢出容器,才顯示滾動條:
/* 規(guī)定從父元素繼承overflow屬性的值 */ overflow: inherit;添加省略號:text-overflow
text-overflow是建立在overflow: hidden;等基礎(chǔ)上的,如果overflow為其它值(inherit的話就要父級情況)則無效。text-overflow有很多可取的值,但實(shí)際上目前瀏覽器兼容性較好的只有clip | ellipsis:
clip:瀏覽器默認(rèn)值就是clip,就是什么都不加
ellipsis:給被截掉的文本內(nèi)容末尾添上個…:
text-overflow僅支持水平方向的溢出,換句話說,只支持單單一行文本內(nèi)容的溢出(上圖那情況雖然是多行,但這種情況不會出現(xiàn)在中文,因?yàn)橹形亩际亲詣訐Q行的),若想支持多行,則需要使用插件,推薦 dotdotdot:
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/111252.html
摘要:空元素,主要講下可算內(nèi)聯(lián)元素,因?yàn)榭膳c其他元素同行,且寬高對其起作用。提示對內(nèi)聯(lián)元素寬高起作用,請使用談?wù)剬Χㄎ坏睦斫馍山^對定位的元素,相對于定位以外的第一個父元素進(jìn)行定位。 Html 1.解釋 ,主要從utf-8展開,utf-8是一種字符編碼,該編碼是全世界通用的,意思是假如項(xiàng)目涉及多語言,那么只能使用該編碼方式。 是使用html5文檔類型。告知瀏覽器的解析器,用什么文檔類型 ...
摘要:空元素,主要講下可算內(nèi)聯(lián)元素,因?yàn)榭膳c其他元素同行,且寬高對其起作用。提示對內(nèi)聯(lián)元素寬高起作用,請使用談?wù)剬Χㄎ坏睦斫馍山^對定位的元素,相對于定位以外的第一個父元素進(jìn)行定位。 Html 1.解釋 ,主要從utf-8展開,utf-8是一種字符編碼,該編碼是全世界通用的,意思是假如項(xiàng)目涉及多語言,那么只能使用該編碼方式。 是使用html5文檔類型。告知瀏覽器的解析器,用什么文檔類型 ...
摘要:構(gòu)建工具是如何用操作文件的從本質(zhì)上來說,源代碼文件都是文本文件,文本文件的內(nèi)容都是字符串,對文本文件的操作其實(shí)就是對字符串的操作。在第二種方式中,一般也是將文本解析成一棵抽象語法樹,然后進(jìn)行操作。 構(gòu)建工具是如何用 node 操作 html/js/css/md 文件的 從本質(zhì)上來說,html/js/css/md ... 源代碼文件都是文本文件,文本文件的內(nèi)容都是字符串,對文本文件的操作...
摘要:構(gòu)建工具是如何用操作文件的從本質(zhì)上來說,源代碼文件都是文本文件,文本文件的內(nèi)容都是字符串,對文本文件的操作其實(shí)就是對字符串的操作。在第二種方式中,一般也是將文本解析成一棵抽象語法樹,然后進(jìn)行操作。 構(gòu)建工具是如何用 node 操作 html/js/css/md 文件的 從本質(zhì)上來說,html/js/css/md ... 源代碼文件都是文本文件,文本文件的內(nèi)容都是字符串,對文本文件的操作...
摘要:閑心面試題一任選一題分的區(qū)別的區(qū)別是無序列表,是有序列表,是定義列表有層次關(guān)系。無任何語義,僅僅用作樣式化或者腳本化的鉤子是有一定語義的,適合有主題性的內(nèi)容,表示一個專題,一般有標(biāo)題,但是不可以亂用。誕生于年,由等人創(chuàng)建,后為所收購。 閑心面試題 一、任選一題(5分)a) ul、ol、dl的區(qū)別?b) div、section、article的區(qū)別? a:ul是無序列表,ol是有序列表,...
閱讀 1010·2023-04-25 15:42
閱讀 3603·2021-11-02 14:38
閱讀 2896·2021-09-30 09:48
閱讀 1437·2021-09-23 11:22
閱讀 3398·2021-09-06 15:02
閱讀 3194·2021-09-04 16:41
閱讀 613·2021-09-02 15:41
閱讀 2025·2021-08-26 14:13