子選擇器與后代選擇器類似,不過子選擇器只會匹配某個元素的直接后代(元素與其子元素之間只有一層嵌套關系),子選擇器由兩個或多個選擇器組成,選擇器之間用大于號>分隔開,如下所示:
p > strong選擇器會將下面代碼中第一個<p>標簽的子標簽<strong>內的文字設置為紅色,但對第二個<p>標簽中的<strong>標簽則沒有影響。
<p>歡迎訪問<strong>編程幫</strong>!</p>
<p><em><strong>編程幫(biancheng.net)</strong></em>,一個在線學習編程的網站,專注于分享優質編程教程。</p>
相鄰兄弟選擇器用于匹配某個元素之后緊鄰的另一個元素,這兩個元素擁有同一個父級元素并且不存在嵌套關系。相鄰兄弟選擇器的定義需要用到加號+,加號兩邊為相鄰的兩個元素,選擇器會匹配加號后面的元素,如下所示:
h1 + p選擇器會匹配同一父級元素下緊鄰<h1>標簽并在其后的<p>標簽。ul.task + p選擇器則會匹配同一父級元素下緊鄰<ul>標簽并在其后的<p>標簽,但<ul>要具有class="task"屬性。
通用兄弟選擇器與相鄰兄弟選擇器非常相似,但卻沒有那么嚴格。通用兄弟選擇器同樣會匹配同一父級元素下的兄弟元素,但兄弟元素之間無需緊鄰。定義通用兄弟選擇器需要用到波浪號~,波浪號兩邊為同一父級元素下的兩個元素,選擇器會匹配波浪號后面的元素,如下所示:
h1 ∼ p選擇器會匹配同一父級元素下<h1>標簽之后的所用<p>標簽。
分組選擇器可以將同樣的樣式規則應用到多個選擇器中,每個選擇器之間使用逗號,進行分隔,這么做可以避免定義重復的樣式規則,最大程度地減少 CSS 樣式表中的代碼。例如,在 CSS 樣式表中,不同的選擇器中可能包含同樣的樣式規則,如下所示:
我們可以看到選擇器h1、h2、h3中包含相同的樣式font-weight: normal;,這時就可以先使用分組選擇器為h1、h2、h3定義它們之間同樣的樣式規則,然后再分別定義它們之間不同的樣式規則,如下所示:
屬性選擇器用來匹配具有特定屬性的元素。屬性選擇器的定義方式與標簽選擇器相似,只不過需要在標簽的后面使用方括號[ ]來指定標簽具有的屬性信息,如下所示:
input[type="text"]選擇器會匹配所有具有type="text"屬性的<input>標簽。
屬性選擇器中方括號[ ]內的屬性信息還支持以下幾種寫法:
[target]:選擇所有帶有target屬性元素;
[target=_blank]:選擇所有具有target="_blank" 屬性的元素;
[title~=flower]:選擇title屬性包含單詞“flower”的所有元素;
[lang|=en]:選擇lang屬性正好是“en”或以“en”為開頭的所有元素。