先看一段**,如下:
hello
請問上面**中,a
標籤中文字的最終顏色是什麼?知道css選擇器優先順序規則的童鞋都知道,在css中優先順序順序如下:
id選擇器 > class選擇器 > tag選擇器答案是:brown。所以,上面**的顏色,大家都會選擇
#box a
綠色。這個答案沒錯。 如果我們把這一條規則從style
標籤中移除呢,那麼a
標籤文字的顏色應該是哪個?brown
? orgold
? which one?
這也許會是一些人的答案,不能不說不對。那麼如果這中情況下呢?a
和p a
的優先順序肯定沒有其它兩項高,不需要考慮。在[class="box"] a
和.box a
中,後者的順序比較考後,會覆蓋之前的樣式,所以顏色是brown
。
hello
不用說,大家都知道會使用style="color: red;"
屬性定義的顏色,是red。
那麼,css所遵從的具體規則是什麼呢?
第零等:!important
, 大過了其它任何設定。
第一等:代表內聯樣式,如: style=」」,權值為1000。
第二等:代表id選擇器,如:#content,權值為0100。
第三等:代表類,偽類和屬性選擇器,如.content,權值為0010。
第四等:代表型別選擇器和偽元素選擇器,如div p,權值為0001。
第五等:萬用字元、子選擇器、相鄰選擇器等的。如*、>、+,權值為0000。
第六等:繼承的樣式沒有權值。
!important
和內聯樣式style
都屬於不講理的那種,
【參考資料】
css selector specificity
前端面試題 CSS選擇器效能優化
css選擇符由一些初始化引數組成,這些引數指明了要應用這個css規則的頁面元素。作為乙個 的前端開發工程師,應該避免編寫一些常見的開銷很大的css選擇符模式,盡量編寫高效的css選擇符,從而加快頁面的渲染速度,縮短頁面呈現時間。瀏覽器讀取選擇器,遵循的原則是從選擇器的右邊到左邊讀取。換句話說,瀏覽器...
前端面試題 css
1.實現不使用border畫出1px高的線,在不同瀏覽器的標準模式與怪異模式下都能保持一致的效果 2.介紹一下標準的css盒子模型,低版本的ie盒子模型有什麼不同 3.box sizing屬性 用來控制元素的盒子模型的解析模式。預設為content box 4.css選擇器有哪些?哪些屬性可以繼承?...
前端面試題 css
1.什麼是盒模型?盒模型主要分為w3c盒模型和ie盒模型,盒模型主要包括content,padding,border,margin。其中w3c盒模型的width content,ie盒模型的width content padding border。2.flex flex為彈性布局,webkit核心的...