CSS选择符及优先级计算
行内样式(Inline Style),如<span style="color:red">...</span>;
ID选择符(ID selectors),如#myid;
类、属性选择符、伪类(Classes, attributes and pseudo-classes),如 .class {...}、[href$=dudo.org]、:hover;
类型(elements)、伪类型选择符(pseudo-elements),如 p {...}、:first-line {...};
他们的优先级怎么来测量呢?如前所述,它们每一类都有不同的数值表示,其中:
行内样式为:1000
ID选择符为:0100
类选择符为:0010
类型选择符为:0001
这里要指出的是,所有这些数值都不是10进制数字,1000只是代码,它是一个行内样式,
例如,body #wrap p {...},那么它的优先级指数就是 1+100+1=102,而body div #wrap p {...}的优先级指数就是 1+ 1 +100 + 1 =103。
再看一下其它的例子:
* { } 0
li:first-line { } 2 (one element, one pseudo-element)
ul ol+li { } 3 (three elements)
ul ol li.red { } 13 (one class, three elements)
style=”” 1000 (one inline styling)
div p { } 2 (two HTML selectors)
div p.sith { } 12 (two HTML selectors and a class selector)
body #darkside .sith p { } 112 (HTML selector, id selector, class selector, HTML selector; 1+100+10+1)
看这段代码:
<html>
<head>
<style type="text/css">
#wrap #content {color: blue;}
#content {color: red;}
</style>
</head>
<body>
<div id="wrap">
<div id="content">this is a text here</div>
</div>
</body>
</html>
代码将显示蓝色。