接下來(lái),我們討論 text-decoration 屬性,這是一個(gè)很有意思的屬性,它提供了很多非常有趣的行為。
text-decoration 有 5 個(gè)值:
不出所料,underline 會(huì)對(duì)元素加下劃線,就像 HTML 中的 U 元素一樣。overline 的作用恰好相反,會(huì)在文本的頂端畫一個(gè)上劃線。值 line-through 則在文本中間畫一個(gè)貫穿線,等價(jià)于 HTML 中的 S 和 strike 元素。blink 會(huì)讓文本閃爍,類似于 Netscape 支持的頗招非議的 blink 標(biāo)記。
none 值會(huì)關(guān)閉原本應(yīng)用到一個(gè)元素上的所有裝飾。通常,無(wú)裝飾的文本是默認(rèn)外觀,但也不總是這樣。例如,鏈接默認(rèn)地會(huì)有下劃線。如果您希望去掉超鏈接的下劃線,可以使用以下 CSS 來(lái)做到這一點(diǎn):
a {text-decoration: none;}
注意:如果顯式地用這樣一個(gè)規(guī)則去掉鏈接的下劃線,那么錨與正常文本之間在視覺(jué)上的唯一差別就是顏色(至少默認(rèn)是這樣的,不過(guò)也不能完全保證其顏色肯定有區(qū)別)。
還可以在一個(gè)規(guī)則中結(jié)合多種裝飾。如果希望所有超鏈接既有下劃線,又有上劃線,則規(guī)則如下:
a:link a:visited {text-decoration: underline overline;}
不過(guò)要注意的是,如果兩個(gè)不同的裝飾都與同一元素匹配,勝出規(guī)則的值會(huì)完全取代另一個(gè)值。請(qǐng)考慮以下的規(guī)則:
h2.stricken {text-decoration: line-through;} h2 {text-decoration: underline overline;}
對(duì)于給定的規(guī)則,所有 class 為 stricken 的 h2 元素都只有一個(gè)貫穿線裝飾,而沒(méi)有下劃線和上劃線,因?yàn)?text-decoration 值會(huì)替換而不是累積起來(lái)。
white-space 屬性會(huì)影響到用戶代理對(duì)源文檔中的空格、換行和 tab 字符的處理。
通過(guò)使用該屬性,可以影響瀏覽器處理字之間和文本行之間的空白符的方式。從某種程度上講,默認(rèn)的 XHTML 處理已經(jīng)完成了空白符處理:它會(huì)把所有空白符合并為一個(gè)空格。所以給定以下標(biāo)記,它在 Web 瀏覽器中顯示時(shí),各個(gè)字之間只會(huì)顯示一個(gè)空格,同時(shí)忽略元素中的換行:
This paragraph has many spaces in it.
可以用以下聲明顯式地設(shè)置這種默認(rèn)行為:
p {white-space: normal;}
上面的規(guī)則告訴瀏覽器按照平常的做法去處理:丟掉多余的空白符。如果給定這個(gè)值,換行字符(回車)會(huì)轉(zhuǎn)換為空格,一行中多個(gè)空格的序列也會(huì)轉(zhuǎn)換為一個(gè)空格。
不過(guò),如果將 white-space 設(shè)置為 pre,受這個(gè)屬性影響的元素中,空白符的處理就有所不同,其行為就像 XHTML 的 pre 元素一樣;空白符不會(huì)被忽略。
如果 white-space 屬性的值為 pre,瀏覽器將會(huì)注意額外的空格,甚至回車。在這個(gè)方面,而且僅在這個(gè)方面,任何元素都可以相當(dāng)于一個(gè) pre 元素。
注意:經(jīng)測(cè)試,IE 7 以及更早版本的瀏覽器不支持該值,因此請(qǐng)使用非 IE 的瀏覽器來(lái)查看上面的實(shí)例。
與之相對(duì)的值是 nowrap,它會(huì)防止元素中的文本換行,除非使用了一個(gè) br 元素。在 CSS 中使用 nowrap 非常類似于 HTML 4 中用
CSS2.1 引入了值 pre-wrap 和 pre-line,這在以前版本的 CSS 中是沒(méi)有的。這些值的作用是允許創(chuàng)作人員更好地控制空白符處理。
如果元素的 white-space 設(shè)置為 pre-wrap,那么該元素中的文本會(huì)保留空白符序列,但是文本行會(huì)正常地?fù)Q行。如果設(shè)置為這個(gè)值,源文本中的行分隔符以及生成的行分隔符也會(huì)保留。 pre-line 與 pre-wrap 相反,會(huì)像正常文本中一樣合并空白符序列,但保留換行符。
注意:我們?cè)?IE7 和 FireFox2.0 瀏覽器中測(cè)試了上面的兩個(gè)實(shí)例,但是結(jié)果是,值 pre-wrap 和 pre-line 都沒(méi)有得到很好的支持。
下面的表格總結(jié)了 white-space 屬性的行為:
值 | 空白符 | 換行符 | 自動(dòng)換行 |
---|---|---|---|
pre-line | 合并 | 保留 | 允許 |
normal | 合并 | 忽略 | 允許 |
nowrap | 合并 | 忽略 | 不允許 |
pre | 保留 | 保留 | 不允許 |
pre-wrap | 保留 | 保留 | 允許 |
如果您閱讀的是英文書(shū)籍,就會(huì)從左到右、從上到下地閱讀,這就是英文的流方向。不過(guò),并不是所有語(yǔ)言都如此。我們知道古漢語(yǔ)就是從右到左來(lái)閱讀的,當(dāng)然還包括希伯來(lái)語(yǔ)和阿拉伯語(yǔ)等等。CSS2 引入了一個(gè)屬性來(lái)描述其方向性。
direction 屬性影響塊級(jí)元素中文本的書(shū)寫方向、表中列布局的方向、內(nèi)容水平填充其元素框的方向、以及兩端對(duì)齊元素中最后一行的位置。
注釋:對(duì)于行內(nèi)元素,只有當(dāng) unicode-bidi 屬性設(shè)置為 embed 或 bidi-override 時(shí)才會(huì)應(yīng)用 direction 屬性。
direction 屬性有兩個(gè)值:ltr 和 rtl。大多數(shù)情況下,默認(rèn)值是 ltr,顯示從左到右的文本。如果顯示從右到左的文本,應(yīng)使用值 rtl。
![]() | ![]() .. 定價(jià):¥45 優(yōu)惠價(jià):¥42 更多書(shū)籍 |
![]() | ![]() .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書(shū)籍 |