CSS规则的执行顺序(转)

简介: 你对CSS规则的执行顺序是否了解,这里和大家分享一下,若两条规则具有相同的权值、起源及特殊性,那在样式表中最后出现的规则优先。 1、CSS规则之特殊性 首先来看一下这个例子将会发生的情形: .grape { color: Blue; } H1 { color: Red; } Meerkat Central H1和.grape都匹配上面的H1元素,那么到底应该使用哪一个呢?实践证明.grape是正确答案,把句子显示为蓝色。

你对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)任何位于文档中的规则都比引入的规则优先。

 

相关文章
|
6月前
|
前端开发 开发者
CSS语言的规则集(Rule Set)或规则(Rule)
CSS语言的规则集(Rule Set)或规则(Rule)
|
3月前
|
前端开发
CSS——@layer规则
CSS——@layer规则
56 2
CSS——@layer规则
|
2月前
|
前端开发
CSS样式规则
CSS样式规则。
34 2
|
3月前
|
前端开发 开发者
CSS样式覆盖规则详解,让你的网页更加出彩!
【8月更文挑战第23天】在Web前端开发中,理解CSS样式覆盖规则至关重要。当多个样式规则作用于同一元素时,哪些规则生效?本文通过实例解析这些规则。简单案例中,`.error`类选择器优先级高于`p`标签,文字显示红色。复杂案例涉及`.important`类与`!important`关键字,此时文字变为绿色。另外,内联样式拥有比外部样式更高的优先级。掌握这些原则有助于开发者高效管理样式。
94 0
|
3月前
|
前端开发 搜索推荐 容器
创意按钮,触手可及:CSS不规则形状效果揭秘!
创意按钮,触手可及:CSS不规则形状效果揭秘!
|
4月前
|
前端开发
css动画 —— 自定义不规则的动画路径 offset-path (含不规则的动画路径参数获取方法)
css动画 —— 自定义不规则的动画路径 offset-path (含不规则的动画路径参数获取方法)
108 1
|
4月前
|
前端开发
css特效——Photoshop选区(动感的虚线选框,支持不规则的选框)
css特效——Photoshop选区(动感的虚线选框,支持不规则的选框)
31 1
|
5月前
|
前端开发 开发者
CSS 选择器与相关规则详解
CSS 选择器与相关规则详解
|
6月前
|
XML 前端开发 数据格式
css的主要规则
【4月更文挑战第14天】css的主要规则
36 6
|
6月前
|
XML 前端开发 数据格式
什么是CSS?CSS的基本规则是什么?
什么是CSS?CSS的基本规则是什么?