層疊優先順序是:
瀏覽器預設 < 外部樣式表 < 內部樣式表 < 內聯樣式
其中樣式表又有:
類選擇器 < 類派生選擇器 < id選擇器 < id派生選擇器
派生選擇器以前叫上下文選擇器,所以完整的層疊優先順序是:
瀏覽器預設 < 外部樣式表 < 外部樣式表類選擇器 < 外部樣式表類派生選擇器 < 外部樣式表id選擇器 < 外部樣式表id派生選擇器 < 內部樣式表 < 內部樣式表類選擇器 < 內部樣式表類派生選擇器 < 內部樣式表id選擇器 < 內部樣式表id派生選擇器 < 內聯樣式...共12個優先順序
為了說明該問題,請參見下面的例子說明。
[html]view plain
copy
<
html
>
<
head
>
<
title
>
title
>
<
style
type
="text/css"
>
div /* 綠色 */
.a1 /* 藍色 */
.a1 div /* 青色 */
.a2 /* 紅色 */
#a2 /* 黃色 */
#a2 div /* 紫色 */
style
>
head
>
<
body
>
<
div>
我是綠色,內部樣式表優先於瀏覽器預設
div>
<
divclass
="a2"
>
我是紅色,類選擇器優先於內部樣式表
div>
<
divclass
="a2"id=
"a2"
>
我是黃色,id選擇器優先於類選擇器
div>
<
divclass
="a1"
>
<
span
>
我是藍色,類選擇器優先於內部樣式表
span
>
<
div>
我是青色,類派生選擇器優先於類選擇器
div>
<
divclass
="a2"
>
我還是青色,類派生選擇器優先於所有類選擇器
div>
<
divid
="a2"
>
<
span
>
我是黃色,id選擇器優先於類派生選擇器
span
>
<
div>
我是紫色,id派生選擇器優先於類派生選擇器
div>
<
divclass
="a1"
>
我還是紫色,id派生選擇器優先於所有類選擇器
div>
<
divclass
="a1"id=
"a1"
>
我還是紫色,id派生選擇器優先於所有id選擇器
div>
<
divclass
="a1"id=
"a1"
style
="color:#000000;"
>
我是黑色,內聯樣式駕到閒雜人等退下
div>
div>
div>
body
>
html
>
執行後的效果圖:
另外,如果同乙個元素在沒有其他樣式的作用影響下,其class定義了多個並以空格分開,其優先順序順序為:
乙個元素同時應用多個class,後定義的優先(即近者優先),加上!important者最優先!
執行後的效果圖:
css 優先順序
當我們的css樣式中,如果同個元素有兩個或以上衝突的css規則,瀏覽器有一些基本的規則來決定哪乙個非常特殊而勝出,也就是常講的css優先順序。一般情況下,你不必擔心css樣式衝突,但對於大型而且複雜的css樣式檔案,或有很多css檔案組成的,就非常有可能產生衝突。下面我們通過2個簡單的例項來了解一下...
css優先順序
今天在使用公司內部框架的時候,發現乙個問題。我在頁面的style元素裡面寫了乙個class選擇器,可是卻不起作用。使用f12檢視,發現是當前的樣式沒有起作用,而是被框架生成的樣式代替掉了。當然,寫內嵌的樣式肯定是沒問題。可問題就是,我明明在頁面內部寫了樣式,按照常理,應該是我手寫的類選擇器的優先順序...
css優先順序
css樣式分為 外部樣式,內部樣式,內聯樣式 選擇器優先權 1.內聯樣式表的權值最高 1000 2.id 選擇器的權值為 100 3.class 類選擇器的權值為 10 4.html 標籤選擇器的權值為 1 css 優先順序法則 a 選擇器都有乙個權值,權值越大越優先 b 當權值相等時,後出現的樣式...