三 CSS層疊機制

2022-09-15 07:06:14 字數 1321 閱讀 2276

層疊就是對樣式的層疊。是某種樣式在樣式表中逐層疊加的過程。讓瀏覽器對某個標籤特定屬性值的多個**,最終確定使用那個值。層疊是整個css的核心機制。

1.瀏覽器預設樣式,每個瀏覽器本身就有一套預設的樣式

2.使用者樣式,這對於視障使用者很重要

3.作者樣式。也就是web開發者設計的樣式

瀏覽器層疊各個樣式的順序:

瀏覽器會按照上面的順序,依次檢查每個樣式的**,並更新相關標籤的設定,當整個檢查更新結束後,再將每個標籤以最終設定的樣式顯示出來

規則一:找到應用給每個元素和屬性的所有宣告。

檢查每一條css規則,並標記出受到影響的html標籤

規則二:按照順序和權重排序

瀏覽器依次檢查5個**,匹配並且更新有定義的值,宣告也可以通過!important增加權重,例如

color: red !important;},

這裡a的color值會始終被設定成red。而忽略5個樣式表

規則三:計算選擇符特指度進行排序

特指度(specificity)即一條規則有多麼明確,選擇符的特指度由它所包含多少標籤、類名和id決定

規則四:順序決定權重

在特指度相同的情況下,後宣告的規則勝出

css選擇符的特指度,由它選擇符中包含標籤的多少、class和id決定

特指度的計算

計分公式:「 i-c-e 」 三個字母用「 - 」分隔符組成

①選擇符中有乙個id,  "  i  " 位置加1

②選擇符中有乙個class,「c」  位置加1

③選擇符中有乙個標籤(元素),「 e 」 位置加1

④得到乙個「三位數」,這並非真正意義上的三位數

按選擇符照特指度計算規則,下面是特指計算的例子

p特指度001

p.largetext特指度011

p#largetext特指度101

body p#largetext特指度102

body p#largetext ul.mylist特指度113

body p#largetext ul.mylist li特指度114

查理版簡單層疊要點—《css設計指南》一書

規則一:包含id的選擇符勝過包含class選擇符,包含class選擇符勝過包含標籤的選擇符

規則二:如果幾個不同**樣式都為同一標籤的同一屬性定義了樣式,行內樣式勝過嵌入樣式,嵌入樣式勝過鏈結樣式,在鏈結樣式中,如果特指度相同,後宣告勝過先宣告

規則三:手動設定樣式勝過繼承樣式

CSS樣式 層疊(三)

前端介面開發的時候,經常會引入很多樣式,而且還有把樣式寫在js裡面控制的 如 使能按鈕 或內嵌到元素的或有的在規則後面加 important,隨著版本的迭代,各種樣式被覆蓋,樣式的調整真的慘目忍睹。css是cascading style sheets 的縮寫,這表示在css中層疊的概念很重要,也就是...

CSS宣告衝突與層疊機制

css宣告衝突 當多個選擇器選中同乙個標籤,如果屬性名相同,屬性值不同時則會產生衝突。舉個例子 html css宣告衝突 css p txt body p 最終文字顏色為紅色 css層疊機制 如果發生宣告衝突瀏覽器會自動觸發自己的層疊機制,在上面例子發生宣告衝突的過程中瀏覽器就觸發了層疊機制,層疊過...

CSS中的樣式層疊機制Cascade

文章位址 樣式衝突是css渲染過程要解決的乙個關鍵問題,樣式衝突主要由兩個原因造成 元素包含了不同物件所賦予的樣式 瀏覽器 使用者 作者。其中,瀏覽器樣式是指不對元素賦予樣式時,元素所表現出來的樣式,也就是瀏覽器賦予的元素預設樣式 使用者樣式是指使用者通過瀏覽器外掛程式設定的樣式,比如色弱者會對文字...