关于CSS样式优先级
一、什么是CSS的优先级
所谓CSS优先级,即是指CSS样式在浏览器中被解析的先后顺序,
对于网站重构的时候特别有用,如果你有使用Firebug,那么你就会看到CSS样式的选择优先级了,
下面让我们来看看浏览器是怎么计算的。
选择符 权重值
--------------------------------------------------
每个id选择符(#id) 0100
每个class选择符(.class) 0010
每个元素或伪元素 0001
直接写在HTML标签style属性上 1000
有了这个计算表格后,我们举个例子
<html>
<head>
<title>样式优先级</title>
<style type="text/css">
span{color:#ff0000;}/*0001*/
h3 span{color:#ff1111;}/*0002*/
.box-class span{color:#ff2222;}/*0011*/
#box-id span{color:#ff3333;}/*0101*/
.box-class .title span{color:#ff4444;}/*0021*/
.box-class h3 span{color:#ff5555;}/*0012*/
.span{color:#000000 !important;}/*0010 添加important后为最高级别,一些书上说important在IE6下无用,我自己测试是可以用的*/
</style>
</head>
<body>
<div id="box-id" class="box-class">
<h3 class="title">
<span class="span" style="color:#ff6666;">测试标题</span>
</h3>
</div>
</body>
</html>
Firebug下显示优先级别:
element.style {color: #FF6666;}
#box-id span {color: #FF3333;}
.box-class .title span {color: #FF4444;}
.box-class h3 span { color: #FF5555;}
.box-class span {color: #FF2222;}
.span {color: #000000 !important;}
h3 span {color: #FF1111;}
span {color: #FF0000;}
需要注意的是,如果添加important 之后 样式的权重就不按照正常情况出牌了(一些书上说important在IE6下无用,我自己测试是可以用的)。
选择器还有一种写法就是.classA.classB 意思 classA与classB需要同时存在,需要注意的是ie6对这种写法不支持,麻烦的IE6。
浙公网安备 33010602011771号