關於CSS的優先順序和繼承問題

來源:互聯網
上載者:User

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

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.