CSS3新特性(05):文本格式

CSS3新特性中關于文本方面的內容不少,會有兩節(jié)內容:文字渲染和文本格式。今天來談談最復雜的部分——文本格式。今天談的屬性大多會在你制作文章頁面時用上喲!好好聽。

01.處理換行、空格和Tab:white-space

眾所周知,瀏覽器對HTML中的換行符是采取忽略政策的,因此一般推薦使用
來換行。但對于多個空格(space)以及Tab只會認作一個空格(space)來處理,因此當需要用到多個空格時,就需要利用空格的實體字符<&nbsp> 來強制顯示空格。實際上,以上這種種麻煩,CSS都能輕易克服:white-space。

(1)語法

white-space:nomal|nowrap|pre|pre-wrap|pre-line;
換行符 空格和 Tab 文本超出容器寬度
nomal 忽略 折疊 換行
nowrap 忽略 折疊 不換行
pre 換行 保持原樣 不換行
pre-wrap 換行 保持原樣 換行
pre-line 換行 折疊 換行

(2)語法解析
下面根據(jù)上面這表格來介紹一下white-space各值的含義:

當white-space為normal(瀏覽器默認值),即換行符無效(collapse)、多個空格及Tab被折疊(collapse)成一個空格來處理、文本內容會自動換行。

當white-space為nowrap時,文本內容不自動換行(至于是強行突破容器還是截斷顯示則要視乎另一個CSS——overflow,下文詳述),其它表現(xiàn)與normal一致。

當white-space為pre時,換行符有效、多個空格及Tab不會被折疊,文本不會自動換行。事實上,<pre>的瀏覽器默認樣式中就有white-space: pre;。

當white-space為pre-wrap時,換行符有效、多個空格及Tab不會被折疊,文本會自動換行,此屬性多用來展示程序代碼段,可以保留其中的換行及縮進。

當white-space為pre-line時,換行符有效,多個空格及Tab會被合并成一個空格,文本超出會自動換行。

這個屬性比較讓人不爽的是只看其值并不能輕松的知道其具體的設置。如果將其拆分成三個屬性:

  • new-line :值為 preserve 或 collapse
  • space-and-tab: 值為 preserve 或 collapse
  • text-wrapping: 值為 wrap 或 nowrap
    然后 white-space 為以上屬性的一個簡寫
white-space: [new-line] [space-and-tab] [text-wrapping];

(3)兼容性主流瀏覽器,甚至包括 IE6 都支持 white-space 的所有值。

02.一個長單詞超出容器寬度時是否換行:word-wrap

必須注意到,這是一個長單詞超出容器寬度的情況,而且只需考慮英文,中文沒有此特性。
(1)語法

word-wrap: normal|break-word;

normal,長單詞不換行


break-word,長單詞自動換行


03.決定文本的換行點:word-break

當一行的末尾已不能完整放下某個單詞A,那么就需要決定用哪種策略來放置這單詞A(肯定是英文了,中文沒這問題)了:
(1)語法

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

(2)語法解析
normal:使用瀏覽器默認的換行規(guī)則。

break-all:擠擠更健康,硬是讓單詞A擠上去,放不下的部分就換行到下一行繼續(xù)顯示。這實際上是沒有把這個單詞看做是一個整體,而是以字母作為最小可換行的單位:

keep-all,不擠不擠我就不擠,哪怕實際上這個單詞獨占一行也無法完整顯示,也要另起一行來顯示:


word-wrap 和 word-break這兩項CSS屬性非常類似,一是都管換行的,二是都針對英文。在我看來,word-break比word-wrap更徹底,因為只要設置word-break: break-all;,那么就從根本上否定了“拆分單詞”這一事實,而是轉變?yōu)椤叭绾畏胖靡淮帜浮保敲磽Q行就是理所當然的了。而word-wrap: break-word;實際上還是把單詞當做是“單詞”來看待的,只是為了顯示效果委曲求全了。

04.規(guī)定如何處理內容溢出容器:overflow

屬性作用于block型元素上。它規(guī)定了當內容元素溢出元素框時發(fā)生的事:裁剪內容,使用滾動條來顯示 或 直接顯示超出部分 。

默認值。內容不會被修剪,會呈現(xiàn)在元素框之外:overflow: visible;

典型如上文的:


/* 內容會被修剪,并且其余內容不可見 */overflow: hidden;

硬是截掉超出容器部分的內容:



/* 內容會被修剪,瀏覽器會顯示滾動條以便查看其余內容 */overflow: scroll;

無論有無內容溢出容器,顯示滾動條;如有內容溢出,通過滾動條可以查看溢出內容:


/* 由瀏覽器定奪,如果內容被修剪,就會顯示滾動條 */overflow: auto;

若有內容溢出容器,顯示滾動條:


/* 規(guī)定從父元素繼承overflow屬性的值 */overflow: inherit;

05.添加省略號:text-overflow

text-overflow是建立在overflow: hidden;等基礎上的,如果overflow為其它值(inherit的話就要父級情況)則無效。text-overflow有很多可取的值,但實際上目前瀏覽器兼容性較好的只有clip | ellipsis

  • clip:瀏覽器默認值就是clip,就是什么都不加

  • ellipsis:給被截掉的文本內容末尾添上個…


text-overflow僅支持水平方向的溢出,換句話說,只支持單一行文本內容的溢出(上圖那情況雖然是多行,但這種情況不會出現(xiàn)在中文,因為中文都是自動換行的),若想支持多行,則需要使用插件,推薦 dotdotdot

參考文章

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,835評論 6 534
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,676評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,730評論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,118評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,873評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,266評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,330評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,482評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,036評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,846評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,025評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,575評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,279評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,684評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,953評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,751評論 3 394
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,016評論 2 375

推薦閱讀更多精彩內容