CSS的三個特性是指層疊性、繼承性以及優(yōu)先級。
一、CSS層疊性
-
說明
層疊性是多種CSS樣式的疊加,是瀏覽器處理樣式?jīng)_突的方式。在HTML中對于同一個元素可以有多個CSS樣式存在,當有相同權(quán)重的樣式存在時,會根據(jù)這些樣式出現(xiàn)的先后順序來決定,處于最后面的CSS樣式將會覆蓋前面的CSS樣式。
-
舉例
下面代碼,出現(xiàn)一個div 標簽指定了相同樣式不同值的情況,這就是樣式?jīng)_突。
div{ color:red; } div{ color:blue; } -
原則
通常出現(xiàn)樣式?jīng)_突,會按CSS書寫的順序,以最后的樣式為準。
- 樣式不沖突,不會層疊。
- 樣式?jīng)_突,遵循就近原則。 長江后浪推前浪,后面樣式蓋前面。
二、CSS繼承性
-
說明
簡單的理解為—“子承父業(yè)“,是指子標簽會繼承父標簽的==某些==樣式,如文本顏色和字號。想要設(shè)置一個可繼承的屬性,只需將它應用于父元素即可。
-
舉例
<style> div{color:pink;font-size:20px;} </style> <div> <span> 我是什么顏色的? </span> </div> -
注意
- 合理使用繼承可以簡化代碼,降低CSS樣式的復雜性。對于字體、字號、顏色、行距等==文本類屬性==具有繼承性,都可以在body中統(tǒng)一設(shè)置,然后影響文檔中所有文本。
- 但是,并不是所有的CSS屬性都可以繼承,如邊框、外邊距、內(nèi)邊距、背景、定位、元素高度等==與塊級元素相關(guān)的==屬性都不具有繼承性。
三、CSS優(yōu)先級
在復雜CSS樣式表,往往并不是相同樣式不同值的堆疊這么簡單,經(jīng)常出現(xiàn)兩個或多個不同樣式規(guī)則應用在同一元素上,這時到底采用哪個樣式呢?這就是典型的CSS優(yōu)先級問題。
處理優(yōu)先級問題,就是考慮樣式權(quán)重的高低。這里先給大家介紹一些特殊的情況:
- ==繼承樣式的權(quán)重為0。==也就是說,在嵌套結(jié)構(gòu)中,無論父元素樣式權(quán)重多大,子元素繼承時,應用在子元素上的權(quán)重都為0,即子元素定義的樣式會覆蓋所有繼承來的樣式。
- ==行內(nèi)樣式優(yōu)先。==應用style屬性的元素,其行內(nèi)樣式的權(quán)重非常高,可以理解為遠大于100??傊麚碛斜壬厦嫣岣叩倪x擇器都大的優(yōu)先級。
- 權(quán)重相同時,CSS遵循就近原則。也就是說靠近元素的樣式具有最大的優(yōu)先級,或者說排在最后的樣式優(yōu)先級最大。
- CSS定義了一個!important命令,該命令被賦予最大的優(yōu)先級。也就是說不管權(quán)重如何以及樣式位置的遠近,!important都具有最大優(yōu)先級。
CSS特殊性
-
說明
或稱非凡性,是需要用一套計算公式來去計算CSS的權(quán)重。CSS的權(quán)重是一個衡量CSS值優(yōu)先級的一個標準,規(guī)則如下:
用一個四位的數(shù)字串(CSS2是三位)來表示,更像四個級別,值從左到右,左面的最大,一級大于一級,數(shù)位之間沒有進制,級別之間不可超越。
-
權(quán)重比較
選擇器的權(quán)重 0,0,0,0 一個標簽(元素)選擇器權(quán)重 0,0,0,1 一個類,偽類選擇器權(quán)重 0,0,1,0 一個ID選擇器權(quán)重 0,1,0,0 一個行內(nèi)樣式權(quán)重 1,0,0,0 一個!important權(quán)重 我是王者我最大 -
權(quán)重的疊加
舉例 權(quán)重 div ul li 0,0,0,3 .nav ul li 0,0,1,2 a:hover 0,0,1,1 .nav a 0,0,1,1 #nav p 0,1,0,1 -
注意
- 繼承的權(quán)重為 0。
- 數(shù)值之間沒有進制計算,比如: 0,0,0,5 + 0,0,0,5 =0,0,0,10 而不是 0,0, 1, 0, 所以不會存在10個div等于一個類選擇器的狀況。
- 權(quán)重是用來計算優(yōu)先級的,層疊是來表現(xiàn)優(yōu)先級的。
-
總結(jié)優(yōu)先級
!important>行內(nèi)樣式> ID 選擇器>類(偽元素、偽類、屬性)選擇器>元素選擇器>通用選擇器
- 使用了 !important聲明的規(guī)則。
- 內(nèi)嵌在 HTML 元素的 style屬性里面的聲明。
- 使用了 ID 選擇器的規(guī)則。
- 使用了類選擇器、屬性選擇器、偽元素和偽類選擇器的規(guī)則。
- 使用了元素選擇器的規(guī)則。
- 使用了通配符的規(guī)則。
- 同一類選擇器則遵循就近原則。