CSS特殊性、繼承與層疊

一、特殊性規(guī)則
選擇器的特殊性由選擇器本身的組件確定;特殊性由四個(gè)部分組成,其初始值為0,0,0,0。
1. 對(duì)于選擇器中的每一個(gè)id,加0,1,0,0;
2. 對(duì)于選擇器中的每一個(gè)類、偽類、屬性選擇,加0,0,1,0;
3. 對(duì)于選擇器中的每一個(gè)元素、偽元素,加0,0,0,1;
4. 結(jié)合符與通配符對(duì)于選擇器的特殊性沒有任何貢獻(xiàn)。
注意:
1. 0,0,1,0的特殊性比0,0,0,13的特殊性更高。
2. 通配符 * 的特殊性為0,0,0,0,它是有特殊性的;結(jié)合符(比如h1+p中的“+”)根本沒有特殊性;繼承而來的樣式也沒有特殊性。
請(qǐng)看如下代碼:
- <head>
- <style>
- *{
- color:red;
- }
- body{
- color:cyan;
- }
- </style>
- </head>
- <body>
- <p>Whatkindofcolorthisparawillbe?</p>
- </body>
頁(yè)面顯示如下:
關(guān)于通配符 * :由于 * 適用于所有元素,而且有0特殊性,往往會(huì)在不經(jīng)意間造成繼承無法實(shí)現(xiàn)的情況,應(yīng)該盡量避免使用 * 選擇器。
3. 指定id屬性的屬性選擇器與id選擇器有本質(zhì)區(qū)別,比如:
- <head>
- <style>
- div[id="test"]p{
- color:red;
- }
- #testp{
- color:cyan;
- }
- </style>
- </head>
- <body>
- <divid="test">
- <p>Whatkindofcolorthisparawillbe?</p>
- </div>
- </body>
頁(yè)面效果:
4. 行內(nèi)樣式的特殊性最高,為1,0,0,0。
5. 標(biāo)記為!important的聲明被稱為重要聲明,它沒有特殊性,不過要與非重要聲明分開考慮。
具體而言:非重要聲明分為一組,它們之間的沖突使用特殊性解決;重要聲明分為一組,它們之間的沖突內(nèi)部解決;重要聲明總是比非重要聲明優(yōu)先。
二、繼承
1. 繼承沒有任何特殊性,記住這一點(diǎn)往往能明白很多問題。
請(qǐng)看如下代碼:
- <head>
- <style>
- p{
- color:red;
- }
- </style>
- </head>
- <body>
- <p>Whatkindofcolorthis<ahref="#">link</a>willbe?</p>
- </body>
頁(yè)面效果:
為什么設(shè)置了<p>元素的顏色為紅色,<a>元素的顏色卻是藍(lán)色?
這并不是因?yàn)?lt;a>元素不繼承父元素的顏色(原諒我之前就是這么認(rèn)為的),而是因?yàn)?lt;a>元素繼承了<p>元素的顏色,但是這個(gè)繼承來的樣式根本沒有特殊性,然而瀏覽器默認(rèn)樣式中對(duì)<a>元素設(shè)置了樣式,很明顯瀏覽器默認(rèn)樣式的特殊性更高,于是<a>元素就按照瀏覽器默認(rèn)樣式顯示。
2. 關(guān)于CSS中的繼承:一般而言,只能子元素繼承父元素的樣式,也就是說樣式在DOM中只能向下傳遞,不能向上;但是有一個(gè)例外,應(yīng)用到body元素的背景樣式可以向上傳遞到html元素,相應(yīng)地可以定義其畫布。
三、層疊
層疊規(guī)則:
1. 按權(quán)重排序。讀者重要聲明>作者重要聲明>作者一般聲明>讀者一般聲明>用戶代理聲明。
2. 權(quán)重相同的情況下,按照特殊性排序,特殊性越高的勝出。
3. 特殊性相同的情況下,按照樣式表中的順序排序,后出現(xiàn)的勝出。
btw,正是因?yàn)檫@個(gè)規(guī)則,才會(huì)使用LoVe-HA的順序聲明鏈接樣式(LoVe-HA 依次為 :link; :visited; :hover; :active)。
相關(guān)文章
HTML5和CSS3實(shí)例教程總結(jié)(推薦)
下面小編就為大家?guī)硪黄狧TML5和CSS3實(shí)例教程總結(jié)(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-18- 下面小編就為大家?guī)硪黄仙U刢ss中float的用法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-18
CSS3實(shí)現(xiàn)iPhone滑動(dòng)解鎖功能代碼
這篇文章主要介紹了CSS3實(shí)現(xiàn)iPhone滑動(dòng)解鎖功能代碼的相關(guān)資料,需要的朋友可以參考下2016-07-18響應(yīng)式設(shè)計(jì)你需要了解的知識(shí)點(diǎn)
響應(yīng)式網(wǎng)站設(shè)計(jì)的理念就是頁(yè)面的設(shè)計(jì)與開發(fā)應(yīng)當(dāng)根據(jù)用戶行為以及設(shè)備環(huán)境進(jìn)行相應(yīng)的響應(yīng)和調(diào)整,這篇文章就帶大家簡(jiǎn)單了解一下響應(yīng)式設(shè)計(jì),感興趣的小伙伴們可以參考一下2016-07-15- 這篇文章主要介紹了CSS布局基礎(chǔ)BFC 的相關(guān)資料,需要的朋友可以參考下2016-07-14
- 下面小編就為大家?guī)硪黄獎(jiǎng)?chuàng)建新元素的三種方法小結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-18