Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4261736
  • 博文数量: 601
  • 博客积分: 15410
  • 博客等级: 上将
  • 技术积分: 6884
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-16 08:11
个人简介

独学而无友,则孤陋而寡闻!

文章分类

全部博文(601)

文章存档

2020年(1)

2018年(4)

2017年(7)

2016年(42)

2015年(25)

2014年(15)

2013年(36)

2012年(46)

2011年(117)

2010年(148)

2009年(82)

2008年(37)

2007年(41)

分类: 系统运维

2010-03-02 12:44:53

1、特殊性
首先来看一下这个例子将会发生的情形:
 

.grape { color:Blue; }
H1 { color: Red; }

Meerkat Central


H1和.grape都匹配上面的H1元素,那么到底应该使用哪一个呢?实践证明.grape是正确答案,把句子显示为蓝色。根据规范,一般的HTML元素 选择符(H1,P 等)具有特殊性1,类选择符具有特殊性10,ID选择符具有特殊性100,值越大权重就越大,就优先选用。
 

 
H1 { color: Red; }                  /* 特殊性 = 1 */    
P EM { color: Blue; }               /* 特殊性 = 2  */
.grape { color: Fuchsia; }            /* 特殊性 = 1 0 */
P.bright { color: Yellow; }            /* 特殊性 = 11 */
P.bright EM.dark{ color: Gray; }       /* 特殊性 = 12 */
#ID01 { color: Red; }                /* 特殊性 = 100 */



2、继承
在特殊性的框架下,被继承的值具有特殊性0,也就是说任何显式声明的规则将会覆盖其继承样式,即便这条规则具有多高的权重。
 

 
H1#ID01 { color: Red; }           /* 特殊性 = 101 */
EM{ color: Gray; }             /* 特殊性 = 1 */

3、STYLE元素
还有sytle元素在CSS下权值定义为100,尽管ID选择也一样,实际上style元素比ID具有更高的特殊性。
 

 
#ID01 EM{ color: Gray; }

Meerkat Central!

会显示为red颜色。

4、重要性(!important)
!important具最高特特性比如说1000,因此!important规则会覆盖内联STYLE属性的内容。
 

 
H1{ color: red !important; }

Meerkat Central!

将显示为RED颜色。

一种特殊情形
 

 
P#warn { color: Red !important; }
EM { color: Black; }

This text is red, but emphasized text is black.


虽然定义!important最高特殊性,但句子并没有全部显示为RED红色,为什么呢?也许我们得回头看看前面的规则,在前面的第二点继承中提“在特殊 性的框架下,继承值只有特殊性0。”因此即便定义!important,继承里的特殊性也只有0,所以显示为特殊性为1的EM规则。

权重顺序为:继承 => HTML普通选择符 => 类选择符 =>style元素 => !important

5、层叠

     1) 若两条规则具有相同的权值、起源及特殊性,那在样式表中最后出现的规则优先。
   2) 任何位于文档中的规则都比引入的规则优先。

阅读(901) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~