其实,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 简明现代魔法