Chinaunix首页 | 论坛 | 博客
  • 博客访问: 22149
  • 博文数量: 24
  • 博客积分: 1035
  • 博客等级: 少尉
  • 技术积分: 240
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-22 14:15
文章分类

全部博文(24)

文章存档

2010年(24)

我的朋友
最近访客

分类:

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

 

 

 
 
 
 
 

 
body中的文字 

 
class="vip",div中的文字 

p中的文字,p位于div中

 
 
 
id="other",另一个div中的文字 
 

虽然类型选择器div的权重要比类选择器.vip和.other要小,但如果在div的样式之后加上!important, 
则表示在div标签文本(不包括div标签中的标签,因为它们具有可继承性),该样式具有最高权重。 

 

阅读(524) | 评论(0) | 转发(0) |
0

上一篇:CSS继承特性

下一篇:CSS常用标签

给主人留下些什么吧!~~