摘要:下面我們從這兩方面去看看樣式的優先級。影響的規則是優先規則最近的祖先樣式比其他祖先樣式優先級高。若同時插有,則再利用規則判斷優先級。
CSS 樣式優先級
當創建的樣式表越來越復雜時,一個標簽的樣式將會受到越來越多的影響,這種影響可能來自周圍的標簽,也可能來自其自身。下面我們從這兩方面去看看 CSS 樣式的優先級。
CSS 的繼承性CSS 的繼承特性指的是應用在一個標簽上的那些 CSS 屬性被傳到其子標簽上。看下面的 HTML 結構:
如果 繼承,即 也擁有屬性 color: red。 由上可見,當網頁比較復雜, HTML 結構嵌套較深時,一個標簽的樣式將深受其祖先標簽樣式的影響。影響的規則是: CSS 優先規則1: 最近的祖先樣式比其他祖先樣式優先級高。 例1: 如果我們把一個標簽從祖先那里繼承來的而自身沒有的屬性叫做“祖先樣式”,那么“直接樣式”就是一個標簽直接擁有的屬性。又有如下規則: CSS 優先規則2:“直接樣式”比“祖先樣式”優先級高。 例2: 上面討論了一個標簽從祖先繼承來的屬性,現在討論標簽自有的屬性。在討論 CSS 優先級之前,先說說 CSS 7 種基礎的選擇器: ID 選擇器, 如 #id{} 類選擇器, 如 .class{} 屬性選擇器, 如 a[href="segmentfault.com"]{} 偽類選擇器, 如 :hover{} 偽元素選擇器, 如 ::before{} 標簽選擇器, 如 span{} 通配選擇器, 如 *{} CSS 優先規則3:優先級關系:內聯樣式 > ID 選擇器 > 類選擇器 = 屬性選擇器 = 偽類選擇器 > 標簽選擇器 = 偽元素選擇器 例3: 所有 CSS 的選擇符由上述 7 種基礎的選擇器或者組合而成,組合的方式有 3 種: 后代選擇符: .father .child{} 子選擇符: .father > .child{} 相鄰選擇符: .bro1 + .bro2{} 當一個標簽同時被多個選擇符選中,我們便需要確定這些選擇符的優先級。我們有如下規則: CSS 優先規則4:計算選擇符中 ID 選擇器的個數(a),計算選擇符中類選擇器、屬性選擇器以及偽類選擇器的個數之和(b),計算選擇符中標簽選擇器和偽元素選擇器的個數之和(c)。按 a、b、c 的順序依次比較大小,大的則優先級高,相等則比較下一個。若最后兩個的選擇符中 a、b、c 都相等,則按照“就近原則”來判斷。 例4: 如果外部樣式表和內部樣式表中的樣式發生沖突會出現什么情況呢?這與樣式表在 HTML 文件中所處的位置有關。樣式被應用的位置越在下面則優先級越高,其實這仍然可以用規則 4 來解釋。 例5: 上面代碼中,@import 語句必須出現在內部樣式之前,否則文件引入無效。當然不推薦使用 @import 的方式引用外部樣式文件,原因見另一篇博客:CSS 引入方式。 CSS 還提供了一種可以完全忽略以上規則的方法,當你一定、必須確保某一個特定的屬性要顯示時,可以使用這個技術。 CSS 優先規則5:屬性后插有 !important 的屬性擁有最高優先級。若同時插有 !important,則再利用規則 3、4 判斷優先級。 例6: 的 background 為 red。
在學習過程中,你可能發現給選擇器加權值的說法,即 ID 選擇器權值為 100,類選擇器權值為 10,標簽選擇器權值為 1,當一個選擇器由多個 ID 選擇器、類選擇器或標簽選擇器組成時,則將所有權值相加,然后再比較權值。這種說法其實是有問題的。比如一個由 11 個類選擇器組成的選擇器和一個由 1 個 ID 選擇器組成的選擇器指向同一個標簽,按理說 110 > 100,應該應用前者的樣式,然而事實是應用后者的樣式。錯誤的原因是:選擇器的權值不能進位。還是拿剛剛的例子說明。11 個類選擇器組成的選擇器的總權值為 110,但因為 11 個均為類選擇器,所以其實總權值最多不能超過 100, 你可以理解為 99.99,所以最終應用后者樣式。 文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。 轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/111168.html 摘要:還有一篇是這樣排序的多重樣式間遵循繼承來的樣式瀏覽器缺省設置外部樣式表內部樣式表內聯樣式結合樣式繼承問題這個問題及其答案來看,繼承的優先級的確是最低的。
原文:http://www.bkjia.com/Javascri...
樣式選擇器權重優先級:
important > 內嵌樣式 > ID > 類 > 標簽 | 偽類 | 屬性選擇 > 偽對象 > 繼承 > 通配符
importa... 摘要:還有一篇是這樣排序的多重樣式間遵循繼承來的樣式瀏覽器缺省設置外部樣式表內部樣式表內聯樣式結合樣式繼承問題這個問題及其答案來看,繼承的優先級的確是最低的。
原文:http://www.bkjia.com/Javascri...
樣式選擇器權重優先級:
important > 內嵌樣式 > ID > 類 > 標簽 | 偽類 | 屬性選擇 > 偽對象 > 繼承 > 通配符
importa... 摘要:我是紅色這種引用代碼的方式在一定程度上解決了所有代碼都分散寫在各個元素上的問題,但是不利于代碼的整體重用。需要詳盡選定該元素來設置具體的樣式。子元素會繼承父元素的樣式,等除外。
上一篇簡單總結了一下選擇器,如果一個元素被多個選擇器選中,元素的樣式就會以級聯方式被應用到。要搞清最終那個樣式被應用到元素上了,首先要明白引用CSS代碼的幾種方式。
CSS代碼引用方式
如何應用CSS代碼到Ht... 摘要:我是紅色這種引用代碼的方式在一定程度上解決了所有代碼都分散寫在各個元素上的問題,但是不利于代碼的整體重用。需要詳盡選定該元素來設置具體的樣式。子元素會繼承父元素的樣式,等除外。
上一篇簡單總結了一下選擇器,如果一個元素被多個選擇器選中,元素的樣式就會以級聯方式被應用到。要搞清最終那個樣式被應用到元素上了,首先要明白引用CSS代碼的幾種方式。
CSS代碼引用方式
如何應用CSS代碼到Ht... 閱讀 2013·2021-09-29 09:35 閱讀 1948·2019-08-30 14:15 閱讀 2973·2019-08-30 10:56 閱讀 954·2019-08-29 16:59 閱讀 571·2019-08-29 14:04 閱讀 1300·2019-08-29 12:30 閱讀 1020·2019-08-28 18:19 閱讀 508·2019-08-26 11:51
選擇器的優先級
// HTML
// CSS
#content-id {
color: red;
}
.content-class {
color: blue;
}
div {
color: grey;
}
// HTML
// HTML
// style-link.css
div {
background: lime;
}
// style-import.css
div {
background: grey;
}
從順序上看,內部樣式在最下面,被最晚引用,所以
// HTML
錯誤的說法
相關文章
css樣式權重優先級,css樣式優先級
css樣式權重優先級,css樣式優先級
關于CSS你應該知道的基礎知識 - 樣式應用篇
關于CSS你應該知道的基礎知識 - 樣式應用篇
發表評論
0條評論
王晗
男|高級講師
TA的文章
閱讀更多
在 main 函數之前執行代碼(C 語言)
面試知識點總結
盒子模型,怪異盒子模型
純css實現手機通訊錄
5分鐘搞定box-sizing
2017 前端面試準備 - 收藏集 - 掘金
CSS 樣式優先級
【js】《JavaScript設計模式與開發實踐》——this的指向