關於HTML技巧之CSS的優先權
同一個元素被CSS選擇符選中時,就要按照優先權取捨不同的CSS規則,優先權問題是一個衝突解決的問題。
首先就是CSS規則的specificity(特殊性),CSS2.1有一套關於specificity的計算方式,用一個四位的數字串(CSS2是三位)來表示,最終specificity越高的規則越特殊,在優先級判定時也就越有優勢。關於specificity的具體計算在各種情況下的數字加成有如下一般規則:
每個ID選擇符(#someid),加 0,1,0,0。
每個class選擇符(class)、每個屬性選擇符(形如[attr=""]等)、每個僞類(形如:hover等)加0,0,1,0
每個元素或僞元素(:firstchild)等,加0,0,0,1
其他選擇符包括全局選擇符*,加0,0,0,0。相當於沒加,不過這也是一種specificity,後面會解釋。
按這些規則將數字串逐位相加,就得到最終計算得的specificity,然後在比較取捨時按照從左到右的順序逐位比較。
舉一些例子吧:
h1 {color: red;}
/* 只有一個普通元素加成,結果是 0,0,0,1 */
body h1 {color: green;}
/* 兩個普通元素加成,結果是 0,0,0,2 */
--後者勝出
e {color: purple;}
/* 一個普通元素、一個class選擇符加成,結果是 0,0,1,1*/
h2 {color: silver;}
/*一個普通元素,結果是 0,0,0,1 */
--前者勝出
HTML > body table tr[id="totals"] td ul > li {color: maroon;}
/* 7個普通元素、一個屬性選擇符、兩個其他選擇符,結果是0,0,1,7 */
li#answer {color: navy;}
/* 一個ID選擇符,一個普通選擇符,結果是0,1,0,1 */
--後者勝出
除了specificity還有一些其他規則
文內的樣式優先級爲1,0,0,0,所以始終高於外部定義。這裏文內樣式指形如
blah的樣式,而外部定義指經由或標籤定義的規則。 有!important聲明的規則高於一切。 如果!important聲明衝突,則比較優先權。 如果優先權一樣,則按照在源碼中出現的順序決定,後來者居上。 由繼承而得到的樣式沒有specificity的.計算,它低於一切其他規則(比如全局選擇符*定義的規則)。 關於經由@import載入的外部樣式,由於@import必須出現在所有其他規則定義之前(如不是,則瀏覽器應該忽略之),所以按照後來居上原則,一般優先權衝突時是佔下風的。 這裏需要提一下IE,IE是可以識別位置錯誤的@import的,但無論@import在什麼地方,它都認爲是位於所有其他規則定義之前的,這可能會引發一些誤會。 所以優先權問題雖然看起來簡單,但其背後還是有蠻複雜的機制的,需要多多留意。
相關文章
-
HTML CSS網頁設計中實用的技巧
技巧能夠設計中的各個環節帶來一定的便利,下面小編給大家整理了HTML CSS網頁設計中實用的技巧,一起來學習吧! HTML CSS網頁設計中實用的技巧 一、將填充和邊距都設置爲零body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4, -
HTMLCSS十條網頁設計中實用的技巧
web開發。不管是在工作還是在學習中,掌握一些實用的開發小技巧,你的效率都會大大提升哦!下面就來和小編一起看看HTMLCSS十條網頁設計中實用的技巧吧。一、將填充和邊距都設置爲零body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4 -
PS快捷鍵Ctrl+Alt+Shift+T的小技巧
大家一定知道PS快捷鍵Ctrl+Alt+Shift+T(下面簡寫爲CAST)變換複製,網上已經有一大堆關於變換複製快捷鍵製作一些圖形的技巧,而這篇文章跟大家分享的是變換複製的原理。大家瞭解了這個以後,在製作變換複製圖形的時候一定能得 -
Div+css教程之製作html的工具
Div+css教程之製作html的工具你瞭解多少呢?就跟隨本站小編一起去了解下吧,想了解更多相關信息請持續關注我們應屆畢業生考試網! 1.切圖工具圖片的效果對一個網頁來說是很重要的,所以說在切圖這方面也沒什麼小巧的工 -
Scott Mitchell 的ASP.NET 2.0數據教程
01.創建一個數據訪問02.創建一個業務邏輯層03.母板頁和站點導航04.使用ObjectDataSource展現數據05.聲明參數06.編程設置ObjectDataSource的參數值07.使用DropDownList過濾的主/從報表08.使用兩個DropDownList過濾的 -
會考英語chemistryclass閱讀理解訓練
The students were having their chemistry(化學)class. Miss Li was telling the children what water was like. After that, she asked her students, “What’s water?”No one spoke for a few Li asked again, -
Unit5 My clothes A Let’s talk評課稿
我們能感受到吳老師教態大方,富有表現力;能和學生打成一片,富有感染力。我想,這也是以學爲本的課堂學習精神文化特徵之一。吳老師執教的是PEP4 Unit5 My clothes A Let’s talk,課文中是體育課結束之後,老師與Amy之間展開的 -
Monsters In The Class英語作文
美容院和各種保養機構的各種宣傳真是令人心動,在這裏,髮絲可以變得飄逸閃亮如廣告,膚色可以從白到棕任意選,牙齒可以拋光成閃亮的小聚光燈,各種來自五湖四海的排毒方式更是讓人眼花繚亂??沒錯,高科技的確會讓我們變得更加美麗 -
Letslearnsummerbeachsh二年級英語教學設計
一、主要新授內容(New contents) Let‘s lea -- summer beach shellLet’s act-Let‘s.. 二、學習目標(Objectives)1、通過觀察夏天海邊的場景,感受夏天的氣息,培養同學熱愛自然的美好情感。2、結合“夏天”的主 -
php函數method-exists()與is-callable()有何區別
php函數method_exists() 與is_callable()的區別在哪?在php面相對象設計過程中,往往我們需要在調用某一個方法是否屬於某一個類的時候做出判斷,常用的方法有 method_exists()和is_callable(),相比之下,is_callable()函數要