首先宣告一下css三大特性——繼承、優先順序和層疊。繼承即子類元素繼承父類的樣式,比如font-size,font-weight等f開頭的css樣式以及text-align,text-indent等t開頭的樣式以及我們常用的color。簡單的就不演示了,強調一下font-size這個東東(雖然也有繼承,但是標籤不同繼承的效果也不一樣),比如下面的**:
我的字型大小為20px
我給p和h1標籤的父元素div設乙個font-size為20px,p沒有問題,繼承了div的20px,但h1卻變為了40px,我們從下面的js**可以獲取。
為什麼h1會是40px呢?因為h1的預設樣式為2em(32px),如下圖
並且h1預設的font-size為200%,因為div設了20px,所以通過繼承h1的最終font-size為20*2=40px,要想使h1的標籤字型大小也等於父標籤div,只需設定h1 ,如下圖所示:
複製**
我的字型大小為20px
下面我們再一起聊聊優先順序這玩意,
!important > 行內樣式》id選擇器 > 類選擇器 > 標籤 > 萬用字元 > 繼承 > 瀏覽器預設屬性
額,好像有點複雜。那我們通過以下幾個例子來證明吧。
方法——先看選擇器是否命中對應的標籤,命中後再根據權重來進行判斷,權重的意思是數標籤的數量,通過比較id 類 標籤 這三種選擇器的數量來決定誰的優先順序最高。當數量相同時,通過層疊(後者覆蓋前者)來決定。
最後顯示綠色,因為雖然!important優先順序最高,但是沒有繼承性,li的顏色繼承自ul.
答案是yellow,因為三者都可以命中元素,所以通過權重判斷,第乙個沒有id選擇器pass掉,第二個和第三個一樣,通過層疊(第三覆蓋第二)決定顏色。
html是乙個巢狀了12個div的複雜盒子,最裡面的div有me這個類,判斷方法:都可以命中元素,所以通過權重,類選擇器》元素選擇器,所以選擇blue.
都可以命中對應元素,權重第乙個大於第二個(比較標籤選擇器數量),顯示blue.
先通過是否命中對應元素排除第四和第五個樣式,然後根據權重比較一二三——第乙個: 兩個id ;第二個:乙個id乙個類;第三個:兩個類。所以根據權重id>類 ,最後顯示blue.
答案是blue,第二個沒有命中pass掉,第乙個和第三個比較權重,由於第乙個沒有類,所以答案是blue。
最後總結一下優先順序、層疊與權重的關係——
層疊是css的乙個特性,如果兩個相同的屬性作用於同一標籤,它們會發生層疊。如果多個復合選擇器,同時作用於我們的同一標籤,優先順序就不好計算了,就要計算權重,通過比較權重,來先出優先順序最高的選擇器。
如何計算權重:
(數標籤的數量)先數id,如果id相等再數類如果id不相等id多的選擇器權重高,權重越高,優先順序越高。如果id選擇器數量相同,再數類選擇器,最後數標籤。
注意:比較權重的時候一定要注意:我們的選擇器一定要命中對應的標籤才可能讓標籤擁有對應的屬性。
CSS 三大特性 層疊 繼承 優先順序
css三大特性 層疊性 如果乙個屬性通過兩個相同選擇器設定到同乙個元素上,相同的屬性就會出現衝突,那麼這個時候乙個 屬性就會將另乙個屬性層疊掉,採用的是就近原則 繼承性 子標籤會繼承父標籤的某些樣式 一般以font line color,text list 都能繼承 備註 a標籤不能繼承字型顏色,h...
CSS的三大特性(繼承 層疊和優先順序)
css中有些屬性是可繼承的,何為屬性的繼承?那麼哪些樣式可以繼承哪些樣式不能繼承,具體屬性是否能繼承,可以查閱w3c官網或者mdn。不能繼承的屬性可以使用inherit屬性值強制繼承。注意 css屬性繼承的是計算值,並不是編寫屬性時的指定值 也就是字面值 css全稱 cascading style ...
CSS 三大特性(層疊性 繼承性 優先順序)
層疊 繼承 優先順序 是我們學習css 必須掌握的三個特性。所謂層疊性是指多種css樣式的疊加。是瀏覽器處理衝突的乙個能力,如果乙個屬性通過兩個相同選擇器設定到同乙個元素上,那麼這個時候乙個屬性就會將另乙個屬性層疊掉 比如先給某個標籤指定了內部文字顏色為紅色,接著又指定了顏色為藍色,此時出現乙個標籤...