其實,CSS有本身的優先級計算公式,而不單單是行間>內部>外部樣式;ID>class>元素。php
1、樣式類型css
一、行間html
<h1 style="font-size:12px;color:#000;">個人行間CSS樣式。</h1>
二、內聯瀏覽器
<style type="text/css"> h1{font-size:12px; color:#000; } </style>
三、外部學習
<link rel="stylesheet" href="css/style.css">
2、選擇器類型spa
一、ID #id.net
二、class .classcode
三、標籤 phtm
四、通用 *blog
五、屬性 [type="text"]
六、僞類 :hover
七、僞元素 ::first-line
八、子選擇器、相鄰選擇器
3、權重計算規則
4、比較規則
5、!important
<style> p{ color:red !important; } </style> <p style="color:blue;">我顯示紅色</p>
p{ color:red !important; color:blue; }//會顯示blue
可是這並不說明ie6不支持important,只是支持上有些bug。看下面
p{ color:red !important; } p{ color:blue; } //這樣就會顯示的是red。說明ie6仍是支持important的。
6、實例
a{color: yellow;} /*特殊性值:0,0,0,1*/ div a{color: green;} /*特殊性值:0,0,0,2*/ .demo a{color: black;} /*特殊性值:0,0,1,1*/ .demo input[type="text"]{color: blue;} /*特殊性值:0,0,2,1*/ .demo *[type="text"]{color: grey;} /*特殊性值:0,0,2,0*/ #demo a{color: orange;} /*特殊性值:0,1,0,1*/ div#demo a{color: red;} /*特殊性值:0,1,0,2*/ <a href="">第一條應該是黃色</a> <!--適用第1行規則--> <div class="demo"> <input type="text" value="第二條應該是藍色" /><!--適用第四、5行規則,第4行優先級高--> <a href="">第三條應該是黑色</a><!--適用第二、3行規則,第3行優先級高--> </div> <div id="demo"> <a href="">第四條應該是紅色</a><!--適用第五、6行規則,第6行優先級高--> </div>
本文是一個學習筆記。有什麼不對的地方,但願你們指出。
參考
http://www.cnblogs.com/wangmeijian/p/4207433.html By 王美建 from 博客園 原創文章
http://www.nowamagic.net/csszone/css_SeletorPriorityRules.php 簡明現代魔法