正文

CSS速成指南(4)

CSS插件工具箱 作者:(英)Robin Nixon


2.2.3  子選擇器

子選擇器與后代選擇器類(lèi)似,但其對(duì)何時(shí)應(yīng)用樣式有更多限制,其只選擇某一元素的直接子元素來(lái)應(yīng)用樣式。例如,下列代碼使用一個(gè)后代選擇器將一個(gè)段落中的粗體文本改為紅色,即使粗體文本本身在斜體標(biāo)記中(例如,<p><i><b>Hello</b> there</i></p>):

p b { color:red; }

在這個(gè)例子中,單詞Hello顯示為紅色。不過(guò),當(dāng)不需要這種較通用的行為時(shí),子選擇器可用于縮小選擇器的范圍。例如,下列子選擇器僅當(dāng)元素是段落的直接子元素,而元素本身沒(méi)有包含在另一元素中時(shí)才把粗體文本設(shè)置為紅色。

p > b { color:red; }

現(xiàn)在,單詞Hello將不改變顏色,因?yàn)樗皇嵌温涞闹苯幼釉亍?/p>

2.2.4  ID選擇器

如果給元素指定一個(gè)ID名稱(例如,<div id='mydiv'>),則可以直接以下列方式通過(guò)CSS訪問(wèn)它,將div中所有文本改為斜體:

#mydiv { font-style:italic; }

1. 重用ID

相同ID在文檔中只能使用一次,因此,只有第一次出現(xiàn)的ID對(duì)應(yīng)的元素會(huì)接受CSS規(guī)則指派的屬性值。但在CSS中,可直接引用任何同名的ID,只要它們出現(xiàn)在不同的元素類(lèi)型中,如下所示:

<div id='myid'>Hello</div>

<span id='myid'>Hello</span>

因?yàn)镮D通常只應(yīng)用于唯一元素,所以下列規(guī)則將下劃線只應(yīng)用于第一次出現(xiàn)的myid對(duì)應(yīng)的元素:

#myid { text-decoration:underline; }

不過(guò),可確保CSS將規(guī)則應(yīng)用于具有同名ID的元素,如下所示:

span#myid { text-decoration:underline; }

div#myid { text-decoration:underline; }

或者,采用更簡(jiǎn)潔的形式(見(jiàn)稍后的2.2.8節(jié)):

span#myid, div#myid { text-decoration:underline; }

警告:

如果使用這種形式的選擇,應(yīng)記住,任何要訪問(wèn)這些元素的JavaScript無(wú)法很容易地這樣做,因?yàn)槌S玫膅etElementByID()函數(shù)將只返回第一次出現(xiàn)的ID對(duì)應(yīng)的元素。為了引用任何其他實(shí)例,編程人員必須搜索文檔中的整個(gè)元素列表,這是一個(gè)很繁重的任務(wù)。

2.2.5  類(lèi)選擇器

一次引用多個(gè)元素的更好方法是使用類(lèi)。如果想使頁(yè)面中許多元素共享一個(gè)樣式,可給它們指派相同的類(lèi)名(例如,<span class='myclass'>),然后創(chuàng)建一條規(guī)則一次修改所有這些元素。如下規(guī)則所示,它使用該類(lèi)為所有元素創(chuàng)建一個(gè)10像素的左邊距偏移量:

.myclass { margin-left:10px; }

在現(xiàn)代瀏覽器中,HTML元素也可使用多個(gè)類(lèi),方法是用空格將它們隔開(kāi),如<span class='thisclass thatclass otherclass'>。這是本書(shū)使用的技術(shù),用于給元素提供多個(gè)樣式。較老的瀏覽器只允許使用單個(gè)類(lèi),因此,如果針對(duì)的是老式瀏覽器,應(yīng)將最重要的類(lèi)放在第一位。

1. 縮小類(lèi)范圍

通過(guò)指定應(yīng)用的元素類(lèi)型可縮小類(lèi)的作用范圍。例如,下列規(guī)則將設(shè)置只應(yīng)用于使用main類(lèi)的段落:

p.main { text-indent:30px; }

在這個(gè)例子中,只有使用main類(lèi)的段落(例如,<p class='main'>)才接受這個(gè)新的屬性值。其他試圖訪問(wèn)該類(lèi)(例如,<div class='main'>)的元素類(lèi)型將被忽略。


上一章目錄下一章

Copyright ? 讀書(shū)網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)