CSS 繼承 層疊 特指

2022-08-03 05:39:09 字數 1098 閱讀 5647

1 為什麼要存在這三種機制(繼承、層疊、特指)

在乙個較大的樣式表中,可能會有很多條規則都選擇同乙個元素的統一個屬性,但是每個屬性只能按照一種規則來進行顯示,當多種規則應用於同一屬性時,該屬性到底是選擇何種規則呢?為了解決這種衝突,需要確定乙個規則的「優先順序」。所以,css提供了這三種機制

2 繼承

後代可以繼承祖先的樣式,例如,body是所有元素的祖先,所有標籤都是他的後代

body

那麼,文件中的所有元素,無論它在何種層次結構中,都繼承這些樣式

css中有很多屬性是可以繼承的,其中相當一部分跟文字相關,比如顏色、字型、字型大小;然而,也有很多css屬性不能繼承,因為繼承這些屬性沒有意義,這些不能繼承的屬性主要涉及元素盒子的定位和顯示方式,比如邊框、外邊距、內邊距等

3 層疊

層疊,是一種樣式在文件層次中逐層疊加的過程,目的是讓瀏覽器面對某個標籤特定屬性值的多個**,確定最終使用哪個值

3.1 樣式**

a、瀏覽器有乙個預設的樣式表

b、使用者可以提供樣式表

c、作者樣式表(網頁設計師寫的樣式表)

瀏覽器會按照上述順序依次檢查每個**的樣式,並在有定義的情況下,更新對每個標籤屬性值的設定。整個檢查更新過程結束後,再將每個標籤以最終設定的樣式表顯示出來,後面的樣式會將前面的樣式覆蓋

3.2 層疊的規則

3.2.1 特指度(specificity)表示一條規則有多明確

計算特指度:

i-c-e

選擇符中有乙個id,就在i的位置上加1;

選擇符中有乙個類,就在c的位置上加1;

選擇符中有乙個元素(標籤)名,就在e的位置上加1。

得到乙個三位數,但不能單純地把它當做數字來比較,比如0-1-12與0-2-0相比,0-2-0的特指度更高

3.2.2 宣告的權重

p 空格!important 分號(;)用於加重宣告的權重。

加重宣告的權重,也就是說,就應用這個樣式了~不管是否還有其他優先順序更高的樣式(慎用~)

3.2.3 層疊的規則

包含id的選擇符 > 包含類的選擇符 > 包含標籤名的選擇符

行內樣式 > 嵌入樣式 > 鏈結樣式

設定的樣式勝過繼承的樣式,此時不用考慮特指度

特指度和層疊

如果有多個css規則作用於同乙個元素上,那麼特指度最高的宣告將勝出 特指度值的計算方法 選擇符的每個id屬性值 0,1,0,0 選擇符的每個類屬性值,屬性選擇 或偽類加 0,0,1,0 選擇符中的每個元素和偽元素加 0,0,0,1 鏈結符和通用選擇符不增加特指度 下面將列舉一些例子 h1 0 0 0...

CSS 繼承與層疊

css 繼承 即,從父元素那繼承部分css屬性 好處 1.父元素設定樣式,子元素可以繼承部分屬性 2.減少css 注意 當元素本身的樣式與繼承而來的樣式有衝突時,將忽略繼承來的樣式,如下 chrom瀏覽器預設字型大小是16px h1 預設字型大小font size 是2em 正常字型的兩倍 因此,在...

CSS繼承與層疊

層疊優先順序 盒模型定位體系 常規流首先,css被稱為層疊樣式表,css有兩大特性 繼承性和層疊性 繼承 是給父級設定了一些屬性。子級繼承了父級的該屬性,這就是我們css的繼承。但是不是每個屬性都能繼承的。這裡我列舉一些 color font text line 像一些盒子元素,定位元素 浮動 絕對...