類選擇器允許以一種獨立於文檔元素的方式來指定樣式。
該選擇器可以單獨使用,也可以與其他元素結合使用。
提示:只有適當地標記文檔後,才能使用這些選擇器,所以使用這兩種選擇器通常需要先做一些構想和計劃。
要應用樣式而不考慮具體設計的元素,最常用的方法就是使用類選擇器。
修改HTML 代碼
在使用類選擇器之前,需要修改具體的文檔標記,以便類選擇器正常工作。
為了將類選擇器的樣式與元素關聯,必須將class 指定為一個適當的值。請看下面的HTML 代碼:
<h1 <span class="marked">class="important"</span> > This heading is very important. </h1> <p <span class="marked">class="important"</span> > This paragraph is very important. </p>
在上面的代碼中,兩個元素的class 都指定為important:第一個標題( h1 元素),第二個段落(p 元素)。
語法
然後我們使用以下語法向這些歸類的元素應用樣式,即類名前有一個點號(.),然後結合通配選擇器:
*.important {color:red;}
如果您只想選擇所有類名相同的元素,可以在類選擇器中忽略通配選擇器,這沒有任何不好的影響:
.important {color:red;}
結合元素選擇器
類選擇器可以結合元素選擇器來使用。
例如,您可能希望只有段落顯示為紅色文本:
p.important {color:red;}
選擇器現在會匹配class 屬性包含important 的所有p 元素,但是其他任何類型的元素都不匹配,不論是否有此class 屬性。選擇器p.important 解釋為:“其class 屬性值為important 的所有段落”。因為h1 元素不是段落,這個規則的選擇器與之不匹配,因此h1 元素不會變成紅色文本。
如果你確實希望為h1 元素指定不同的樣式,可以使用選擇器h1.important:
p.important {color:red;} h1.important {color:blue;}
CSS 多類選擇器
在上一節中,我們處理了class 值中包含一個詞的情況。在HTML 中,一個class 值中可能包含一個詞列表,各個詞之間用空格分隔。例如,如果希望將一個特定的元素同時標記為重要(important)和警告(warning),就可以寫作:
<p <span class="marked">class="important warning"</span> > This paragraph is a very important warning. </p>
這兩個詞的順序無關緊要,寫成warning important 也可以。
我們假設class 為important 的所有元素都是粗體,而class 為warning 的所有元素為斜體,class 中同時包含important 和warning 的所有元素還有一個銀色的背景。就可以寫作:
.important {font-weight:bold;} .warning {font-style:italic;} <code>.important.warning {background:silver;}</code>
通過把兩個類選擇器鏈接在一起,僅可以選擇同時包含這些類名的元素(類名的順序不限)。
如果一個多類選擇器包含類名列表中沒有的一個類名,匹配就會失敗。請看下面的規則:
.important.urgent {background:silver;}
不出所料,這個選擇器將只匹配class 屬性中包含詞important 和urgent 的p 元素。因此,如果一個p 元素的class 屬性中只有詞important 和warning,將不能匹配。不過,它能匹配以下元素:
<p <span class="marked">class="important urgent warning"</span> > This paragraph is a very important and urgent warning. </p>
重要事項:在IE7之前的版本中,不同平台的Internet Explorer都不能正確地處理多類選擇器。