<style type="text/css">
span {
color: red;
}
.c {
color: blue;
}
#i {
color: green;
}
</style>
<div>
<span id="i" class="c">CSS</span>
</div>
上面的 CSS 字串同時被 span、.c 與 #i 選上,結果是呈現 #i 的綠色。再看一個複雜一點的狀況。
<style type="text/css">
div span {
color: yellow;
}
span.c {
color: pink;
}
</style>
<div>
<span id="i" class="c">CSS</span>
</div>
上面的 CSS 字串同時被 div span 與 span.c 選上,結果是呈現 span.c 的粉紅色,為什麼呢?邏輯很簡單,每個 CSS Selector 都有一個「優先度」,可以用「數值」來表示。
標籤選擇器,像是 div 或者 span,得 1 分。
類別選擇器,就是 class 定義的名稱,得 10 分。
ID 選擇器,就是 id 定義的名稱,得 100 分。
還有行內選擇器(Inline selector),就是用 style="..." 直接寫在標籤裡的,得 1000 分。
最終以得方最高的選擇器勝出。



