CSS规则的执行顺序(转)

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

1、CSS规则之特殊性

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

<style type="text/css">
    .grape
    {
        color: Blue;
    }
    H1
    {
        color: Red;
    }
</style>
<h1 class="grape">
    Meerkat <em>Central </em>
</h1>

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

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

<style type="text/css">
    H1
    {
        color: Red;
    }
    /*特殊性=1*/

    PEM
    {
        color: Blue;
    }
    /*特殊性=2*/

    .grape
    {
        color: Fuchsia;
    }
    /*特殊性=10*/

    P.bright
    {
        color: Yellow;
    }
    /*特殊性=11*/

    P.brightEM.dark
    {
        color: Gray;
    }
    /*特殊性=12*/

    #ID01
    {
        color: Red;
    }
    /*特殊性=100*/
</style>

 

2、CSS规则之继承

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

<style type="text/css">
 #ID01{color:Red;}
    /*特殊性=100*/
    EM{color:Gray;}
    /*特殊性=1*/
</style>
<h1 id="ID01">
    Meerkat<em> Central</em>
</h1>

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

 

3、CSS规则之STYLE元素

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

<style type="text/css">
   #ID01, EM{color:Gray;}
</style>
<h1 id="ID01">
    Meerkat<em style="color:red;"> Central</em>
</h1>

会显示为red颜色。

 

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

!important具最高特特性比如说1000,因此!important规则会覆盖内联STYLE属性的内容。程序代码

<style type="text/css">
H1{color:red!important;}
</style>
<H1 style="color:black;">MeerkatCentral!</H1>

将显示为RED颜色。

一种特殊情形

<style type="text/css">
P#warn
    {
        color: Red !important;
    }
    EM
    {
        color: Black;
    }
</style>
<p id="warn">
    Thistextisred,but<em> emphasizedtextisblack.</em>
</p>

虽然定义!important最高特殊性,但句子并没有全部显示为RED红色,为什么呢?

也许我们得回头看看前面的规则,在前面的第二点继承中提“在特殊性的框架下,继承值只有特殊性0。”

因此,即便定义!important,继承里的特殊性也只有0,所以显示为特殊性为1的EM规则。

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

 

5、CSS规则之层叠

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

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

 

时间: 2024-09-03 04:14:04

CSS规则的执行顺序(转)的相关文章

CSS规则的执行顺序

1.特殊性 首先来看一下这个例子将会发生的情形: 以下是代码片段: .grape { color:Blue; }  H1 { color: Red; }  <h1 class="grape">Meerkat <em>Central</em></h1>   H1和.grape都匹配上面的H1元素,那么到底应该使用哪一个呢? 实践证明.grape是正确答案,把句子显示为蓝色. 根据规范,一般的HTML元素选择符(H1,P 等)具有特殊性1,类

CSS优先权与 执行顺序

css教程执行顺序与优先权的问题其实就是一个冲突解决的问题,当同一个元素(或内容)被css选择符选中时,就要按照优先权取舍不同的css规则,这其中涉及到的问题其实很多. 首先就是css规则的specificity(特殊性),css2.1有一套关于specificity的计算方式,用一个四位的数字串(css2是三位)来表示,最终specificity越高的规则越特殊,在优先级判定时也就越有优势.关于specificity的具体计算在各种情况下的数字加成有如下一般规则: 每个id选择符(#somei

CSS执行顺序与优先权的问题

核心提示:CSS执行顺序与优先权的问题其实就是一个冲突解决的问题,当同一个元素(或内容)被CSS选择符选中时,就要按照优先权取舍不同的CSS规则,这其中涉及到的问题其实很多. CSS执行顺序与优先权的问题其实就是一个冲突解决的问题,当同一个元素(或内容)被CSS选择符选中时,就要按照优先权取舍不同的CSS规则,这其中涉及到的问题其实很多. 首先就是CSS规则的specificity(特殊性),CSS2.1有一套关于specificity的计算方式,用一个四位的数字串(CSS2是三位)来表示,最终

详细讲解Linux系统Iptables规则执行顺序

预备知识(转): iptable有三种队列(表)规则,mangle queue, filter queue, nat queue. 1.The first is the mangle table which is responsible for the alteration of quality of service bits in the TCP header. 2.The second table is the filter queue which is responsible for pa

图片-Drools 如何解决规则依赖的执行顺序

问题描述 Drools 如何解决规则依赖的执行顺序 Agenda 中的规则集原本是随机执行的,现在需求是以规则的类型按照顺序先后执行,这样的解决方法有很多,不过在需求中有个棘手的问题就是规则的依赖,它影响了之前的逻辑,如下图: 规则依赖集中的规则可能会依赖规则集1,2或者3里的规则,这就影响了原来的流程,怎么样解决规则依赖的问题实现顺序执行规则集?不知道大家有什么好的方案没? 解决方案 http://www.iteye.com/problems/3183http://lixuaong.iteye

Div+CSS规则整理

一.           善用css缩写规则     /*注意上.右.下.左的书写顺序*/ 1.      关于边距(4边): 1px 2px 3px 4px (上.右.下.左) 1px 2px 3px    (省略的左等于右) 1px 2px         (省略的上等于下) 1px            (四边都相同)   2.      简化所有: */ body{margin:0}------------表示网页内所有元素的margin为0 #menu{ margin:0}------

Flash Actionscript脚本的执行顺序

脚本|执行 做了一下Flash脚本执行顺序状况的测试,总结出以下几条规则:1.先执行帧脚本,再执行该帧中的影片剪辑中帧脚本.2.同一帧中不同图层的帧脚本的执行顺序是从上层图层至下层图层;3.不同影片剪辑中的帧脚本执行顺序是根据其加载顺序来的.通常下在同一帧中不同图层内的影片剪辑脚本以自下层图层至上层图层;4.由于非脚本创建的影片剪辑最先加载,所以先执行非脚本创建的影片剪辑中的脚本,再执行由脚本创建的影片剪辑中的脚本,脚本创建的影片剪辑遵循"先创建/加载,先执行"的原则;5.非脚本创建的

Flash脚本的执行顺序

脚本|执行 做了一下Flash脚本执行顺序状况的测试,总结出以下几条规则:1.先执行帧脚本,再执行该帧中的影片剪辑中帧脚本.2.同一帧中不同图层的帧脚本的执行顺序是从上层图层至下层图层;3.不同影片剪辑中的帧脚本执行顺序是根据其加载顺序来的.通常下在同一帧中不同图层内的影片剪辑脚本以自下层图层至上层图层;4.由于非脚本创建的影片剪辑最先加载,所以先执行非脚本创建的影片剪辑中的脚本,再执行由脚本创建的影片剪辑中的脚本,脚本创建的影片剪辑遵循"先创建/加载,先执行"的原则;5.非脚本创建的

JMeter基础之--元件的作用域与执行顺序

前面有介绍过jmeter的元件类别,对于新手来说,jmeter的 元件是还是不少的,如果我们按照每一个元件的每一个参数的含义去学习,无疑会降低学习性能测试的热情,就算我们熟悉了所有元件以及元件上的参数了,我们也 不知道如何将其组合成我们想要描述的性能测试.另一方面,我们点击每个节点上的元件都会出现类似或相同的菜单,他们的层级关系是什么样的.究竟这个元件放 在哪个层级的哪个位置才达到我们意愿. 如何更快速的入门jmeter,个人建议通过录制脚本的方式,快速的了解一个性能测试应该包括的元件以及它们的