css-样式的继承与选择器的权重

本文内容:css-样式的继承与选择器的权重

0x01 样式的继承

1.1 什么是样式的继承

样式的继承就是我们为一个元素设置的样式同时会应用到它的后代元素上.可以看出样式的继承是发生在祖先与后代之间的。

1.2 设计的目的

继承的设计是为了方便我们开发,利用样式的继承我们可以将一些通用的样式统一设置到共同的祖先元素上,那么设置一次所有的后代元素都具有该样式。

注意:并不是所有的样式都会被继承。比如,和背景相关的,布局相关等,这些样式不会被继承。

eg.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>

        p{
            color: red;
            background-color: orange;
        }

        div{
            color: yellowgreen
        }
    
    </style>
</head>
<body>
    <p>
        我是一个p元素
        <span>我是p元素中的span</span>
    </p>

    <span>我是p元素外的span</span>

    <div>
        我是div
        <span>
            我是div中的span
            <em>我是span中的em</em>
        </span>
    </div>
</body>
</html>

执行效果:
在这里插入图片描述

0x02 选择器的权重

2.1 选择器权重的由来

当我们通过不同的选择器,选中相同的元素,并且为相同的样式设置不同的值时,此时就发生了样式的冲突。发生样式冲突时,应用哪个样式由选择器的权重(优先级)决定。

2.1 选择器权重说明

选择器权重
内联样式1,0,0,0
id选择器0,1,0,0
类和伪类选择器0,0,1,0
元素选择器0,0,0,1
通配选择器0,0,0,0
继承的样式没有优先级

说明:

1. 0000:左边是高位,右边是低位,表格中权重的大小由高到低依次排列
2.比较优先级时,需要将所有的选择器的优先级进行相加计算,最后优先级越高,则越优先显示(分组选择器是单独计算的)
3.选择器的累加不会超过其最大的数量级,类选择器在高也不会超过id选择器
4.如果优先级计算后相同,此时则优先使用靠下的样式,即下方的代码会将上方的代码效果覆盖
5.可以在某一个样式的后边添加 !important ,则此时该样式会获取到最高的优先级,甚至超过内联样式,
注意:在开发中!important一定要慎用!

代码演示1.
比较优先级时,需要将所有的选择器的优先级进行相加计算,最后优先级越高,则越优先显示

<head>
	<style>
	/* 权重:0,1,0,1 */
	         div#box1 { 
	             color: brown;
	         }
	
	         /* 权重:0,1,0,0 */
	         #box1{
	             color: chartreuse;
	         }
	</style>
</head>
<body>
    <!-- 显然,div#box1的权重大于#box1 -->
    <div id="box1">
    我是一个div 
    <span>我是div中的span</span>
    </div>
</body>

执行效果:
在这里插入图片描述

代码演示2.
样式的继承没有优先级

<head>
	<style>
		span{
	       color:blue;
	   }
		div{
	          color: red;
	   	}
	
	   
	</style>
</head>

在这里插入图片描述
代码演示3.
可以在某一个样式的后边添加 !important ,则此时该样式会获取到最高的优先级

<style>
	#box1{ color:blue;}
     
    div{
        color: red !important;
    }
</style>

执行结果:
在这里插入图片描述

本文到此结束!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值