CSS 的优先规则

CSS2.1 中规定了关于 CSS 规则 Specificity(特异性)的计算方式,用一个四位的数字串(注:CSS2 中是用三位)来表示,最后以 Specificity 的高低判断 CSS 的优先权。

Specificity 具体的计算规则:

1.元素的 style 样式属性,加 1000。
2.每个 ID 选择符(#id),加 0100。
3.每个 class 选择符(.class)、每个属性选择符(例 [attr=”"] )、每个伪类(例 :hover),加 0010。
4.每个元素或伪元素(例 :firstchild)等,加 0001。
5.其他选择符(例 全局选择符 *,子选择符 >),加 0000。
最后逐位相加数字串,得到最终的 Specificity 值,按照从左到右的顺序逐位比较。除了 Specificity 还有一些其他规则:
6.!important 声明的规则高于一切,如果 !important 声明冲突,则比较优先权。
7.如果优先权一样,则按源码中“后来者居上”的原则。
8.由继承而得到的样式属性不参与 specificity 的计算,低于一切其他规则(例 全局选择符 * )。

范例分析:

h1 {color: red;}
/* 只有一个普通元素加成,结果是 0001 */

body h1 {color: green;}
/* 两个普通元素加成,结果是 0002 */
/*0001 小于 0002 ,后者胜出*/

h2.grape {color: purple;}
/* 一个普通元素、一个class选择符加成,结果是 0011*/

h2 {color: silver;}
/*一个普通元素,结果是 0001 */
/*0011 大于 0001 ,前者胜出*/

html > body table tr[id=”totals”] td ul > li {color: maroon;}
/* 7个普通元素、一个属性选择符、两个其他选择符(子选择符 >),结果是0017 */

li#answer {color: navy;}
/* 一个ID选择符,一个普通选择符,结果是0101 */
/*0017 小于 0101,后者胜出*/

/***************************************************************************/
 

 




如果您喜欢本篇文章,也许您也会喜欢下面推荐的文章!
其实我不想帮你找... (日志真乱 -_-#.. )

在线RSS阅读器订阅:

feedsky
抓虾 pageflakes Rojo
google reader my yahoo newsgator
bloglines 有道

手机订阅:

收藏到网摘:

本站订阅地址:
RSS2: 点击复制
Atom: 点击复制

免责说明:
本站提供的文件均通过卡巴斯基最新版扫描无毒,请放心使用
本站所发表内容或来自互联网,或本人原创,只为学习交流之用,不存在任何商业用途
遵循创作共同协议,您可自由复制等方式传播本作品。
如果本站内容不慎侵犯了您的版权,请及时联系我们,我们将尽快处理。

遵循创作共同协议,您可自由复制,发行,广播或通过信息网络传播本作品。
但须遵守下列条件:
◎ 署名. 您必须按照作者或者许可人指定的方对作品进行署名。
◎ 非商业性使用. 您不得将该作品用于商业目的。
◎ 禁止演绎. 您不得修改、转换或者以本作品为基础进行创作。
任何再使用或者发行,您都必须向他人清楚地展示本作品使用的许可协议条款。
如果得到著作权人的许可,您可以不受任何这些条件的限制。

评论: 0 | 引用: 0 | 查看次数: - | TOP ↑
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.