CSS 偽類 :not() 用來匹配不符合一組選擇器的元素。由于它的作用是防止特定的元素被選中,它也被稱為反選偽類(negation pseudo-class)。
注意:
:not()
偽類不能被嵌套,這意味著 :not(:not(...))
是無效的。
由于偽元素不是簡單的選擇器,他們不能被當(dāng)作 :not()
中的參數(shù),形如 :not(p::before)
這樣的選擇器將不會(huì)工作。
可以利用這個(gè)偽類寫一個(gè)完全沒有用處的選擇器。例如, :not(*)
匹配任何非元素的元素,因此,這個(gè)規(guī)則將永遠(yuǎn)不會(huì)被應(yīng)用。
可以利用這個(gè)偽類提高規(guī)則的優(yōu)先級。例如, #foo:not(#bar)
和 #foo
會(huì)匹配相同的元素,但是前者的優(yōu)先級更高。
:not(.foo)
將匹配任何非 .foo
的元素,包括 <html>
和 <body>
。
這個(gè)選擇器只會(huì)應(yīng)用在一個(gè)元素上,無法用它來排除所有父元素。比如, body :not(table) a
依舊會(huì)應(yīng)用到表格元素 <table>
內(nèi)部的 <a>
上, 因?yàn)?<tr>
將會(huì)被 :not(table)
這部分選擇器匹配。
為每個(gè)非<p>元素的元素設(shè)置背景顏色:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>菜鳥教程(cainiaoplus.com)</title> <style> p { color: #000000; } :not(p) { color: #ff0000; } </style> </head> <body> <h1>這是一個(gè)標(biāo)題</h1> <p>這是一個(gè)段落.</p> <p>這是另一個(gè)段落.</p> <div>這是div元素的一些文本。</div> <a href="//www.soo66.com/" target="_blank">鏈接到菜鳥教程</a> </body> </html>測試看看 ?/?
:not() 偽類可以將一個(gè)或多個(gè)以逗號分隔的選擇器列表作為其參數(shù)。選擇器中不得包含另一個(gè)否定選擇符或 偽元素。
表格中的數(shù)字表示支持該選擇器的第一個(gè)瀏覽器的版本號。
選擇器 | |||||
---|---|---|---|---|---|
:not() | 4.0 | 9.0 | 3.5 | 3.2 | 9.6 |