CSS 之层叠样式的优先级

1. 同一元素引用了多个样式时,排在后面的样式属性的优先级高。

例如,下面的 div,同时获取 class = "default" 和 class = "user" 的样式,其中 user 样式中的 width 属性会替换 default 样式中的 width 属性,显示效果如下图。

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <style type="text/css">
        .default{
           width: 100px;
           height: 100px;
           background-color: #B6E0AE;
           margin: -50px 0 0 -50px;
           position: absolute;
           top: 50%;
           left: 50%;
        }
        .user{
           width: 50px; /* 这里 width 的值替换了前面 width 的值 */
        }
    </style>
</head>
<body>
    <div class="default user"></div>
</body>
</html>

2. 样式选择器的类型不同时,优先级顺序为:id 选择器 > class 选择器 > 标签选择器。

例如,下面的 div 即获取 id 选择器对应的样式,又获取 class 选择器对应的样式,其中

id 选择器 [#mydiv] 的样式属性(width),优先于 class 选择器 [.user] 中的样式属性(width);

class 选择器 [.user] 中的样式属性(background-color),优先于标签选择器 [div] 中的样式属性 (background-color)。

显示效果如下图。

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <style type="text/css">
        #mydiv{
           width: 100px;
           height: 100px;
           margin: -50px 0 0 -50px;
           position: absolute;
           top: 50%;
           left: 50%;
        }
        .user{
           width: 500px; /* #mydiv 中已设置 width,这里的 width 无效 */
           background-color: #B6E0AE;
        }
        div{
           background-color: #000000; /* .user中 已设置 background-color,这里的 background-color 无效 */
        }
    </style>
</head>
<body>
    <div id="mydiv" class="user"></div>
</body>
</html>

&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;img src="https://pic2.zhimg.com/270cbc3ebaf61b53885a2cb02b8498d5_b.png" data-rawwidth="410" data-rawheight="298" class="content_image" width="410"&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;

3. 标签之间存在层级包含关系时,后代元素会继承祖先元素的样式。如果后代元素定义了与祖先元素相同的样式,则祖先元素的相同的样式属性会被覆盖。继承的样式的优先级比较低,至少比标签选择器的优先级低。

例如,下面 id = "child" 的子 div,部分样式继承自 id = "parent" 的父 div,而其新定义的样式属性又会覆盖父元素的样式属性。显示效果如下图。

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <style type="text/css">
        #parent{
           width: 100px;
           height: 100px;
           background-color: #B6E0AE;
           margin: -50px 0 0 -50px;
           position: absolute;
           top: 50%;
           left: 50%;
        }
        #child{
            /* 继承了父元素的width等属性 */
            height: 60px;  /* 这里的height覆盖了父元素的height属性 */
            background-color: #A7CCEF; /* 这里的background-color覆盖了父元素的background-color属性 */
        }
    </style>
</head>
<body>
    <div id="parent">
        <div id="child" style="font-size:12px;">子元素</div>
    </div>
</body>
</html>

4. 带有 !important 标记的样式属性的优先级最高。

例如,下面的 div 的样式属性中,带有 !important 标记的样式属性(width)会替换其他的(width)。显示效果如下图。

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <style type="text/css">
        #parent{
           width: 100px;
           height: 100px;
           background-color: #B6E0AE;
           margin: -50px 0 0 -50px;
           position: absolute;
           top: 50%;
           left: 50%;
        }
        #child{
            /* 继承了父元素的width等属性 */
            height: 60px;  /* 这里的height覆盖了父元素的height属性 */
            background-color: #A7CCEF; /* 这里的background-color覆盖了父元素的background-color属性 */
        }
        div{
            width: 150px !important; /* 此时的width属性不会被其他的width属性覆盖 */
        }
    </style>
</head>
<body>
    <div id="parent">
        <div id="child" style="font-size:12px;">子元素</div>
    </div>
</body>
</html>

5. 样式表的来源不同时,优先级顺序为:内联样式 > 内部样式 > 外部样式 > 浏览器用户自定义样式 > 浏览器默认样式。

例如,下面的 div 的样式有多个来源,其中内联样式 font-size 的优先级最高,外部样式中的 width 属性,优先级比内部样式中的 width 属性的优先级要低。显示效果如下图。

main.css 文件中的代码如下:

#parent {
    width: 300px;
}
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <link type="text/css" rel="stylesheet" href="main.css" />
    <style type="text/css">
        #parent{
           width: 100px;  /* 这里的width属性替换了main.css文件中定义的width属性 */
           height: 100px;
           background-color: #B6E0AE;
           margin: -50px 0 0 -50px;
           position: absolute;
           top: 50%;
           left: 50%;
        }
        #child{
            height: 60px; /* 覆盖父元素的height属性 */
            background-color: #A7CCEF;
            font-size: 50px;
        }
    </style>
</head>
<body>
    <div id="parent">
    <!--内联样式font-size优先级比<style></style>中的font-size优先级高 -->
    <!--chrome浏览器默认的font-size至少是12px,即使这里设置为小于12px,浏览器还是显示12px-->
        <div id="child" style="font-size:20px;">子元素</div>
    </div>
</body>
</html>

时间: 2024-11-10 16:14:55

CSS 之层叠样式的优先级的相关文章

css的层叠性+继承性+优先级+权重

一.层叠性 1.含义 多种css样式叠加,浏览器处理冲突的能力. 2.原则 1>一般情况下,若出现冲突,会按照css的书写顺序,以最后的样式为准 2>样式不冲突,就不会层叠 二.css的继承性 1.在浏览器的样式栏显示的是inherited from xxx 2.可以继承的属性:1>文本颜色(color:) 2>以font-开头的属性(font-family font-size font-weight)3>以line-开头的(line-height ) 4>以text-

[程序员入行必备]CSS样式之优先级

专业玩家请移步:http://www.w3.org/TR/CSS2/cascade.html 使用CSS控制页面样式时,经常出现设定的样式被"覆盖",不能生效的情况. 浏览器是依据怎样的优先次序判断CSS样式的优先级的呢? 总结如下: 样式的来源 样式有多处来源,有网页开发作者设定的.有浏览器默认的.还有网页用户设定的.各种样式声明逐层叠加,或继承.或覆盖.或叠加计算,影响元素的展现效果. 样式的来源依次有: 1.浏览器默认样式: 2.用户样式: 3.作者链接样式: 4.作者页内嵌入样

实践中了解到的CSS样式的优先级

CSS三大特性--继承.优先级和层叠.这是在精通CSS中重点强调的内容. 继承即子类元素继承父类的样式,常用的可继承样式有:color,font,line-height,list-style,text-align,text-indent等,应用样式的元素的后代会继承样式的某些属性. 输出结果: 由此可知,p继承了父元素的字体大小,而h1的话则是默认(2em)字体大小,一般h1都是200%字体大小,如果需要设置成和p同样的大小,可以把font-size改为100%:                

css的三大特性继承性,层叠行,优先级

1.继承性 #1.定义:给某一个元素设置一些属性,该元素的后代也可以使用,这个我们就称之为继承性 #2.注意: 1.只有以color.font-.text-.line-开头的属性才可以继承 2.a标签的文字颜色和下划线是不能继承别人的 3.h标签的文字大小是不能继承别人的,会变大,但是会在原来字体大小的基础上变大 ps:打开浏览器审查元素可以看到一些inherited from...的属性 #3.应用场景: 通常基于继承性统一设置网页的文字颜色,字体,文字大小等样式 <!DOCTYPE html

CSS(4)---三大特性(继承性,层叠性,优先级)

CSS(4)---三大特性(继承性,层叠性,优先级) CSS有三大特性分别是: 继承性,层叠性,优先级. 一.继承性 概念 给父元素设置一些属性,子元素也可以使用,这个我们就称之为继承性. 注意 1.并不是所有的属性都可以继承, 只有以color/font-/text-/line-开头的属性才可以继承 2.在CSS的继承中不仅仅是儿子可以继承, 只要是后代都可以继承 3.继承性中的特殊性 3.1 a标签的文字颜色和下划线是不能继承的 3.2 h标签的文字大小是不能继承的 示例 <!-- 样式部分

CSS样式的优先级

1.相同权值情况下,CSS样式的优先级总结来说,就是--就近原则(离被设置元素越近优先级别越高): 内联样式表(标签内部)> 嵌入样式表(当前文件中)> 外部样式表(外部文件中). 2.权值不同时,浏览器是根据权值来判断使用哪种css样式的,哪种样式权值高就使用哪种样式. 下面是权值的规则: 标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100.例如下面的代码: p{color:red;} /*标签,权值为1*/ p span{color:green;} /*两个标签,权值为1+

CSS样式之优先级

说到到css的样式优先级,今天偶再来回顾下,从css的样式优先级可分为两个部分: 1.从CSS代码放置的位置看权重优先级:     内联样式 > 内部嵌入样式 >外联样式 2.从样式选择器的权重优先级:     Important > 内联样式 > ID > 类.伪类.属性选择器 > 标签.伪元素 > 通配符 今儿,我们重点来看看第2点—样式选择器. 请看以下代码: <!DOCTYPE html> <head> <title>c

CSS样式选择器优先级

原文:CSS样式选择器优先级 CSS样式选择器分为4个等级,a.b.c.d,可以以这四种等级为依据确定CSS选择器的优先级. 1.如果样式是行内样式(通过Style=””定义),那么a=12.b为ID选择器的总数3.c为Class类选择器的数量.4.d为类型选择器的数量5.属性选择器,伪类选择器和class类选择器优先级一样,伪元素选择器和类型选择器一样6.!important 权重最高,比 inline style 还要高. 例如: 选择器 特殊性 (a,b,c,d) Style= ”” 1,

Web前端面试指导(十三):css样式的优先级是怎么样的?

题目点评 CSS样式的优先级规则给人的感觉总是摸不透,更不用说怎么去表达了,在网络上流传着很多版本,描述的都很复杂也不全面,看了之后还是不满意.我来给大家介绍一个比较系统.全面有比较容易记住的规则吧! 解答思路 样式优先级规则 1.优先级顺序为:!important>style>权重值 2. 如果权重相同,则最后定义的样式的起作用,应该避免这种情况出现 权重规则 标签的权重为1 class的权重为10 id的权重为100 权重取值示例