特殊性是什麼
在對一個HTML元素應用CSS樣式時,常常有很多種方法可以找到元素,例如:
<p id="container" class="wrap_sty"> <p class="pra">这是一个段落</p> </p> <style> #container p { color:red } p p { color:green } p { color:yellow } </style>
可見,如果要作用到一個HTML元素的方法很多,遠遠不只這些。那麼如果一個元素被套用了很多同樣的樣式,最後又會顯式到哪一個樣式呢? CSS對於多個選擇器的優先性使用了一個稱為特殊性的方式。
CSS特殊性
選擇器的特殊性分為4個等級,a b c d,從左到右,越左邊的越優先, 如果一個選擇器規則有多個相同類型選擇器,則+1。
如果是HTML內樣式,那麼特殊性最優先,a=1
id選擇器的特殊性是b,
類別選擇器、偽類別選擇器、屬性選擇器為c
標籤選擇器、偽元素選擇器為d
先說一些選擇器類型:
1.id選擇器
#myid { ... }
2.類別選擇器
.myclass { ... }
3.標籤選擇器
p { ... }
4.屬性選擇器
[title="mytitle"] { ... }
由於大多數文件例如W3CSCHOOL可能並沒有詳細說明,或許不少人認為屬性選擇器是這樣的 p[title="mytitle"]或#id[title="mytitle"]等等,這樣是屬性選擇器,嚴格來說,這樣的並非單純的屬性選擇器,而是由id選擇器、標籤選擇器等等和屬性選擇共同組成的。
5.偽類選擇器
p:hover { ... }
常見的偽類選擇器有:
連結偽類,:link, :visited,用於錨元素。
動態偽類,:hover,:focus,:active,用於任何選擇。
6.偽元素選擇器
p::after { ... } p::before { ... }
偽元素和偽類是完全不同的概念,之所以稱之為偽元素,因為其確實可以產生一個虛擬的HTML元素,只不過偽元素無法被DOM取得。
偽元素的應用有很多,最常見的例如::after清除浮動:
<ul> <li>A</li> <li>B</li> </ul> <style> li { float:left } ul::after { content: ""; display: block; clear: both } </style>
#CSS特殊性範例
#下面是一些CSS選擇器的特殊性範例:
選擇器 | 特殊性 | 以10為基底數的特殊性 |
---|---|---|
style="color: red" |
#1, 0, 0, 0 | 1000 |
#id {} |
0, 1, 0, 0 | 100 |
#id #aid |
0, 2, 0, 0 | #200 |
.sty {} |
0, 0, 1, 0 | 10 |
.sty p[title=""] { } |
0, 0, 2, 0 | 20 |
p:hover {} | ##0, 0, 1, 010 | |
#p {}
| 0, 0, 0, 11 | |
ul::after {}
| 0, 0, 0, 11 | |
p p {}
| 0, 0, 0, 22 |
如果兩個規則的特殊性相同,那麼後面定義的會覆寫先定義的。
CSS重要性
CSS中還有一種東西可以無視特殊性,那就是!important,使用此標記的CSS屬性總是最優先的。
#id { color: red } .class { color: yellow !important }第二個樣式會優先於第一個樣式,即使id選擇器的特殊性高於類別選擇器。
如果兩個屬性都有 !important 那麼由特殊性來決定優先順序。
#id { color: red !important } .class { color: yellow !important }結果是第一個樣式優先於第二個樣式。
IE6對 !important 的支援並不完全,在IE6中,如果一個選擇器中先定義了 !important 屬性,後面又定義了一個同樣的不帶 !important 的屬性,那麼!important 會失效。
p { color: yellow !important; color: red; }在IE6中,可就沒辦法黃了,還是見點血吧!
IE6/7還可以在 !important 後面加點料,也不會失去味道,但建議別這麼無聊!
div { color: yellow !important you are dead; /* IE6/7依然有效 */ }
#
以上是CSS中的選擇器優先順序的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

具有CSS的自定義光標很棒,但是我們可以將JavaScript提升到一個新的水平。使用JavaScript,我們可以在光標狀態之間過渡,將動態文本放置在光標中,應用複雜的動畫並應用過濾器。

互動CSS動畫和元素相互啟動的元素在2025年似乎更合理。雖然不需要在CSS中實施乒乓球,但CSS的靈活性和力量的增加,可以懷疑Lee&Aver Lee有一天會成為一種

有關利用CSS背景濾波器屬性來樣式用戶界面的提示和技巧。您將學習如何在多個元素之間進行背景過濾器,並將它們與其他CSS圖形效果集成在一起以創建精心設計的設計。

好吧,事實證明,SVG的內置動畫功能從未按計劃進行棄用。當然,CSS和JavaScript具有承載負載的能力,但是很高興知道Smil並沒有像以前那樣死在水中

是的,讓#039;跳上文字包裝:Safari Technology Preview In Pretty Landing!但是請注意,它與在鉻瀏覽器中的工作方式不同。

此CSS-tricks更新了,重點介紹了年鑑,最近的播客出現,新的CSS計數器指南以及增加了幾位新作者,這些新作者貢獻了有價值的內容。

在大多數情況下,人們展示了@Apply的@Apply功能,其中包括Tailwind的單個property實用程序之一(會改變單個CSS聲明)。當以這種方式展示時,@Apply聽起來似乎很有希望。如此明顯


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Dreamweaver Mac版
視覺化網頁開發工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。