html+css樣式來源及優先順序(包括選擇器)
一個頁面編寫過程中可能有多個樣式作用到同一元素身上,那麼,究竟採用哪種樣式,瀏覽器分析渲染時有自己的規則,以下提供常用的比較方法(數字越大,優先順序越小):
一、樣式來源及優先順序
程式編寫:
1、!important(非樣式來源,編寫過程中提高優先順序方法,慎用)
2、行內
3、內部
4、@import引入
5、link引入
瀏覽器:
6、使用者自定義
7、瀏覽器預設
二、程式中選擇器優先順序
1、id選擇器;
2、類、偽類、屬性選擇器;
3、標籤選擇器
4、萬用字元、派生選擇器(後代、子代、相鄰兄弟)
5、繼承
派生選擇器本身沒有權重,權重值為祖先(父代)和後代(子代)權重之和。
選擇器優先順序依照上表對應值分以下層次:
1、0100
2、0010
3、0001
4、0000
5、無數值
每種選擇器有對應的權重值,先比較樣式來源,再比較選擇器權重,選擇器權重可以相加(請網上查閱資料);樣式來源和權重均相同時,採用後設置樣式覆蓋先設定樣式的規則(程式碼從上往下執行)。
元素可繼承屬性:
全部元素繼承:cursor、visibility。
行內元素繼承:font、font-style、font-variant、font-weight、font-size、line-height、font-family、color、text-decoration、text-transform、direction、white-space、letter-spacing、word-spacing。
塊元素繼承:text-indent、text-align。
列表元素繼承:list-style、list-style-type、list-style-position、list-style-image。
以上內容為本人自行探索,難免錯漏。寫出來一方面用於交流,另一方面期盼高手過路能隨意指點兩手,指出本人理解有誤之處,不勝感激!