首頁 >web前端 >css教學 >CSS的優先順序和繼承問題

CSS的優先順序和繼承問題

高洛峰
高洛峰原創
2017-02-22 13:17:471282瀏覽

CSS的優先權和繼承問題

★CSS的衝突,即優先權
 CSS本身的設定可以同時套用多個樣式在同一個元素,此時樣式之間可能會出現衝突而達不到使用者所想要的效果。
★解決CSS衝突的優先權規則:
 ● CSS層疊樣式表引入方法的優先順序:內聯式>內嵌式>連結式>導入式
 ● 在多個外部樣式中,後出現的樣式的優先權高於先出現的樣式,也就是俗稱的覆蓋
 ● 在樣式中,選擇器的優先權:ID樣式>class樣式>標記樣式(以權重比喻:id的權重為100,class的權重為10,標籤名的權重為1)
 ● 在樣式後面加上一個!important,例如這樣:.abc {background:#fff !improtant;} 這個樣式的優先等級就會預設提升到頂級,全域樣式就無法影響到它了。
✪注意:!important要寫在分號的前面
優先權:
     就近原則(離程式碼越近,優先權越高)
     選擇範圍越小,優先權越高。細化CSS,透過多加父元素的選擇符一層層包住,縮小選擇範圍

 ★樣式繼承:
 繼承是指我們設定上級(父級)的CSS樣式,上級(父級)及以下的子級(下級)都具有此屬性。一般只有文字文字具有繼承特性,如文字大小、文字加粗、文字顏色、字體等。但注意有一些css樣式是不具有繼承性的。如border:1px solid red;

demo:

#
<p style="color:red;">如果你不知道自己<span>想做什么该做什么</span>,那你什么都做不好。</p>

說明:(1)我設定上級(父級:p)的文字顏色為紅色,而子級(span)未設定文字顏色,但是文字具有繼承特性,所以子級文字內容仍是紅色。
 (2)假如設定父級文字顏色樣式後,其多個子級因繼承而與父級相同,若有些子級顏色不想與父級相同,這個時候只需對對應子級設置需要顏色即可。
✪注意:還有一個權值比較特殊--繼承也有權值但很低,有的文獻提出它只有0.1,所以可以理解為繼承的權值最低。

繼承好處:可以只設定上級的CSS樣式表屬性,子級(下級)不用設置,並且都有此CSS屬性,可以減少CSS程式碼,以便於維護。

 ★CSS中可以和不可以繼承的屬性
一、無繼承性的屬性

1、display:規定元素應該產生的框的類型

2.文字屬性:

vertical-align:垂直文字對齊

text-decoration:規定加入到文字的裝飾

##text-shadow:文字陰影效果

white-space:空白符的處理

unicode-bidi:設定文字的方向

3、盒子模型的屬性:width、height、margin 、margin-top、margin- right、margin-bottom、margin-left、border、border-style、border-top-style、border-right-style、border-bottom-style、border-left-style、border-width、border-top-width、 border-right-right、border-bottom-width、border-left-width、border-color、border-top-color、border-right-color、border-bottom-color、border-left-color、border-top、 border-right、border-bottom、border-left、padding、padding-top、padding-right、padding-bottom、padding-left

4、背景屬性:background、background-color、background-image、 background-repeat、background-position、background-attachment

5、定位屬性:float、clear、position、top、right、bottom、left、min-width、min-height、max-width、max- height、overflow、clip、z-index

6、產生內容屬性:content、counter-reset、counter-increment

7、輪廓樣式屬性:outline-style、outline-width、 outline-color、outline

8、頁面樣式屬性:size、page-break-before、page-break-after

9、聲音樣式屬性:pause-before、pause-after、 pause、cue-before、cue-after、cue、play-during

二、有繼承性的屬性

1、字型系列屬性

##font:組合字型

font-family:規定元素的字體系列

font-weight:設定字體的粗細

font-size:設定字體的尺寸

##font- style:定義字體的風格

font-variant:設定小型大寫字母的字體顯示文本,這意味著所有的小寫字母均會被轉換為大寫,但是所有使用小型大寫字體的字母與其余文本相比,其字體尺寸較小。

font-stretch:對目前的 font-family 進行伸縮變形。所有主流瀏覽器都不支援。

font-size-adjust:為某個元素規定一個 aspect 值,這樣就可以保持首選字體的 x-height。

2、文字系列屬性

text-indent:文字縮排

text-align:文字層級對齊

line-height:行高

word-spacing:增加或減少單字間的空白(即字間隔)

letter-spacing:增加或減少字元間的空白(字元間距)

text- transform:控製文字大小寫

direction:規定文字的書寫方向

color:文字顏色

3、元素可見性:visibility

4、表格佈局屬性:caption-side、border-collapse、border-spacing、empty-cells、table-layout

#5、列表佈局屬性:list-style-type、list-style-image、list-style-position、list-style

#6、產生內容屬性:quotes

7、遊標屬性:cursor

8、頁面樣式屬性:page、page-break-inside、windows、orphans

9、聲音樣式屬性:speak、speak-punctuation、speak-numeral、speak-header、speech- rate、volume、voice-family、pitch、pitch-range、stress、richness、、azimuth、elevation

三、所有元素可以繼承的屬性

1、元素可見性:visibility

2、遊標屬性:cursor

四、內聯元素可以繼承的屬性

1、字型系列屬性

2、除text-indent、 text-align以外的文字系列屬性

五、區塊級元素可以繼承的屬性

#1、text-indent、text-align

更多CSS的優先級與繼承問題 相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn