CSS偽類選擇器根據(jù)其他條件匹配組件,而不一定由文檔樹定義。CSS 偽類 是添加到選擇器的關(guān)鍵字,指定要選擇的元素的特殊狀態(tài)。例如,:hover 可被用于在用戶將鼠標(biāo)懸停在按鈕上時改變按鈕的顏色。
CSS偽類允許您設(shè)置元素的動態(tài)狀態(tài)的樣式,例如懸停,活動狀態(tài)和焦點(diǎn)狀態(tài),以及文檔樹中現(xiàn)有但不能通過使用其他選擇器作為目標(biāo)的元素,而無需添加任何選擇器它們的ID或類,例如,針對第一個或最后一個子元素。
偽類以冒號(:)開頭??梢酝ㄟ^以下方式給出其語法:
以下部分描述了最常用的偽類。
使用錨偽類鏈接可以以不同的方式顯示:
這些偽類使您可以對未訪問的鏈接進(jìn)行樣式化,而對訪問的鏈接進(jìn)行樣式化。最常見的樣式設(shè)置技術(shù)是從訪問的鏈接中刪除下劃線。
a:link { color: blue; } a:visited { text-decoration: none; }測試看看?/?
一些錨點(diǎn)偽類是動態(tài)的-它們是由于用戶與文檔進(jìn)行交互(例如懸停或聚焦等)而應(yīng)用的。
a:hover { color: red; } a:active { color: gray; } a:focus { color: yellow; }測試看看?/?
這些偽類更改了響應(yīng)用戶操作呈現(xiàn)鏈接的方式。
:hover 當(dāng)用戶將光標(biāo)放在元素上但不選擇它時應(yīng)用。
:active 當(dāng)元素被激活或單擊時適用。
:focus 當(dāng)元素具有鍵盤焦點(diǎn)時適用。
注:為了使這些偽類很好地工作,你必須按正確的順序?qū)⑺鼈兌x- :link, :visited, :hover, :active, :focuss
:first-child偽類匹配的是一些其他元素的第一個子元素的元素。ol li:first-child在下面的示例中,選擇器選擇一個有序列表的第一個列表項(xiàng),并從其頂部刪除邊框。
ol li:first-child { border-top: none; }測試看看?/?
:last-child偽類匹配的是一些其他元素的最后一個子元素的元素。下ul li:last-child例中的選擇器從無序列表中選擇最后一個列表項(xiàng),并從其中刪除右邊框。
ul li:last-child { border-right: none; }測試看看?/?
注意: CSS :last-child選擇器在Internet Explorer 8和更早版本中不起作用。在Internet Explorer 9及更高版本中支持。
CSS3引入了一個新的:nth-child偽類,使您可以將給定父元素的一個或多個特定子對象作為目標(biāo)。此選擇的基本語法可以與給予:nth-child(N),其中N是一個參數(shù),其可以是一個數(shù)字,一個關(guān)鍵字(even或odd),或形式的表達(dá)xn+y,其中x和y是整數(shù)(例如1n,2n,2n+1,...)。
table tr:nth-child(2n) td { background: #eee; }測試看看?/?
上面示例中的樣式規(guī)則僅突出顯示了代替表行,而沒有向元素添加任何ID或類。
提示: CSS :nth-child(N)選擇器在必須選擇以特定間隔或模式(例如在偶數(shù)或奇數(shù)位置等)出現(xiàn)在文檔樹內(nèi)的元素的情況下非常有用。
語言偽類:lang允許根據(jù)特定標(biāo)記的語言設(shè)置來構(gòu)造選擇器。:lang以下示例中的偽類為明確賦予語言值的元素定義了引號no。
q:lang(no) { quotes: "~" "~"; } /* HTML code snippet */Some text A quote in a paragraph Some text.測試看看?/?
偽類可以與CSS類結(jié)合使用。
class="red"在下面的示例中,帶有的鏈接將顯示為紅色。
a.red:link { /* style rule */ color: #ff0000; } <a class="red" href="#">Click me</a> /* HTML code snippet */測試看看?/?