分类:
2010-06-18 20:45:13
我们在重复定义同个css的对象时,css权重是用来决定哪个样式优先显示,权重轻的此时会被忽略,权重是判断重复定义时谁更具优先性的标准。CSS2.1中使用一个4位的数字来表示权重,以下是有关权重的一些规定:
类型选择符的权重为:0001
类选择符的权重为:0010
通用选择符的权重为:0000
子选择符的权重为:0000
属性选择符的权重为:0010
伪类选择符的权重为:0010
伪元素选择符的权重为:0010
包含选择符的权重为:包含的选择符权重值之和
内联样式的权重为:1000
继承的样式的权重为:0000
p{color:red} 权重为:0001
p[align]{color:blue} 权重为:0010
.vip{color:green} 权重为:0010
#myid{color:purple} 权重为:0100
p{color:red} #myid{color:purple} .vip{color:green}
类和属性两者权重相同,但为什么会应用类样式而不是属性样式,
body p{color:green}
为什么会应用body p{color:green}样式,而不是p{color:red}样式呢?
因为body p{color:green}==body权重 + p权重 ==2 > p{color:red}==1
It's green
p中的文字,p位于div中
body中的文字
class="vip",div中的文字
id="other",另一个div中的文字
虽然类型选择器div的权重要比类选择器.vip和.other要小,但如果在div的样式之后加上!important,
则表示在div标签文本(不包括div标签中的标签,因为它们具有可继承性),该样式具有最高权重。