剖析CSS规则之执行顺序

开发 前端
你对CSS规则是否了解,本文向大家介绍一下CSS规则的执行顺序,主要包括特殊性,重要性 ,层叠以及继承等几种,希望本文介绍对你有所帮助。

你对CSS规则的执行顺序是否了解,这里和大家分享一下,若两条规则具有相同的权值、起源及特殊性,那在样式表中最后出现的规则优先。

CSS规则的执行顺序

1、CSS规则之特殊性

首先来看一下这个例子将会发生的情形:

程序代码

  1. .grape{color:Blue;}H1{color:Red;}  
  2. <h1classh1class="grape"> 
  3. Meerkat  
  4. <em>Central  
  5. </em> 
  6. </h1> 
  7.  

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

1,类选择符具有特殊性10,ID选择符具有特殊性100,值越大权重就越大,就优先选用。

程序代码

  1. H1{color:Red;}/*特殊性=1*/PEM{color:Blue;}  
  2.  
  3. /*特殊性=2*/.grape{color:Fuchsia;}  
  4.  
  5. /*特殊性=10*/P.bright{color:Yellow;}  
  6.  
  7. /*特殊性=11*/P.brightEM.dark{color:Gray;}  
  8.  
  9. /*特殊性=12*/#ID01{color:Red;}  
  10.  
  11. /*特殊性=100*/  
  12.  

2、CSS规则之继承

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

程序代码

  1. H1#ID01{color:Red;}  
  2.  
  3. /*特殊性=101*/EM{color:Gray;}  
  4.  
  5. /*特殊性=1*/<H1IDH1ID="ID01> 
  6.  
  7. Meerkat<EM> 
  8.  
  9. <Central</EM> 
  10.  
  11. </H1> 

虽然ID选择符特殊性最高,但由于在特殊性的框架下,继承值只有特殊性0,因些Central会显示为Gray颜色。

3、CSS规则之STYLE元素

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

程序代码

  1. #ID01EM{color:Gray;}  
  2.  
  3. <H1IDH1ID="ID01">Meerkat  
  4.  
  5. <EMstyleEMstyle="color:red;"> 
  6.  
  7. Central</EM> 
  8.  
  9. !</H1> 

会显示为red颜色。

4、CSS规则之重要性(!important)

!important具最高特特性比如说1000,因此!important规则会覆盖内联STYLE属性的内容。程序代码
H1{color:red!important;}<H1style="color:black;">MeerkatCentral!</H1>

将显示为RED颜色。一种特殊情形

程序代码

  1. P#warn{color:Red!important;}EM{color:Black;}  
  2.  
  3. <pidpid="warn">Thistextisred,but<em> 
  4.  
  5. emphasizedtextisblack.</em> 
  6.  
  7. </p> 

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

5、CSS规则之层叠

1)若两条规则具有相同的权值、起源及特殊性,那在样式表中最后出现的规则优先。

2)任何位于文档中的规则都比引入的规则优先。

【编辑推荐】

  1. CSS Sprites工作原理及优缺点
  2. CSS层叠与继承用法手册
  3. DIV布局规范中CSS类及id命名方式
  4. CSS网页布局中id与class命名规则
  5. 将XHTML+CSS页面转换为打印机页面技巧

 

责任编辑:佚名 来源: svn8.com
相关推荐

2010-09-03 14:46:46

CSS缩写CSS

2010-09-01 09:03:56

CSS优先权

2021-07-27 05:32:22

CSS 技巧方位与顺序

2010-08-24 16:17:27

CSS简写

2010-07-01 15:36:22

UML顺序图

2011-07-18 17:14:16

Objective-C 内存 Cocoa

2009-09-14 10:35:15

Linq内部执行原理

2010-08-25 09:11:57

DIVCSS

2016-09-13 17:51:23

Html5CSSWeb

2010-09-13 09:54:56

CSS浮动元素

2012-08-31 09:36:01

CSS

2010-08-26 15:18:27

CSS样式

2010-09-06 12:32:10

CSS伪元素

2010-08-31 10:57:44

clipCSS

2010-08-25 14:56:15

CSS相对定位

2012-05-16 13:45:24

Java构造器

2009-07-03 16:33:13

Tapestry函数执

2022-01-21 08:50:15

Promise任务队列前端

2010-09-01 13:03:12

CSS规则

2010-06-03 11:23:19

Hadoop
点赞
收藏

51CTO技术栈公众号