★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-left4、背景屬性:background、background-color、background-image、 background-repeat、background-position、background-attachment5、定位屬性:float、clear、position、top、right、bottom、left、min-width、min-height、max-width、max- height、overflow、clip、z-index6、產生內容屬性:content、counter-reset、counter-increment7、輪廓樣式屬性:outline-style、outline-width、 outline-color、outline8、頁面樣式屬性:size、page-break-before、page-break-after9、聲音樣式屬性: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中文網!