《掌握CSS三大特性,轻松解决CSS代码失效难题》

目录

CSS三大特性

前言

测一测

CSS三大特性的学习

层叠性

继承性 

优先级

★复合选择器的权重

最后


CSS三大特性

前言

在前端学习中,CSS三大特性是必学且很重要的知识点,其中三大特性分别是:层叠性继承性优先级

三大特性亦是一种‘规则’,精通并‘遵守’是帮助你彻底解决CSS代码失效问题的关键!

测一测

先测一测自己是否掌握了这个知识点:

.red {
color: red;
}
.blue {
color: blue;
}
<div class="red blue">123</div>
<div class="blue red">123</div>

问:这两个div内的文字是什么颜色?

CSS三大特性的学习

每个特性先学习再做题!

层叠性

层叠性是指,当一个标签前后被设置了相同样式时,标签会根据就近原则继承离自己最近的样式

注意,只有相同样式会被覆盖继承,除此之外其它样式均会被叠加继承

下面代码中span标签内的文字是什么颜色的?
<body>
    <style>
        span {
            font-size:30px;
            color: red;
        }

        span {
            color: green;
        }
    </style>
    <span>我是什么颜色?</span>
</body>                                                            

上文示例样式根据层叠性可得:相同样式color会根据就近原则继承绿色,而除此之外,字体大小也会被叠加继承。

继承性 

继承性是指,子级元素可以继承父级元素的文本字体样式、

注意标粗字体,继承性不是所有属性都可以被继承的

小li标签是否会变色加粗?
<body>
    <style>
        .nav{
            color: red;
            font-weight:600px;
        }
    </style>
    <ul class="nav">
        <li>你</li>
        <li>好</li>
        <li>呀</li>
    </ul>
</body>

毫无疑问,小li标签会继承父级元素文本和字体样式,变红加粗

优先级

选择器之间是有优先级的,各选择器的权重如下(从低到高):

  1. 继承 或 *——0000
  2. 元素选择器——0001
  3. 类/伪类选择器——0010
  4. id选择器——0100
  5. 行内样式style——1000
  6. !important——无穷大

相同样式下,标签会选择权重高的继承

权重码由四位数字构成,需从左到右依次进行比较,先大则大

下面代码中span标签内的文字是什么颜色的?
<body>
    <style>
        .test {
            color: red;
        }

        span {
            color: green;
        }
    </style>
    <span class="test">我是什么颜色?</span>
</body>

很明显,类选择器权重大于元素选择器,所以文字会是红色

趁热打铁,再来一个题:

小li标签文字是什么颜色?
<body>
    <style>
        .nav {
            color: red;
        }

        li {
            color: green;
        }
    </style>
    <ul class="nav">
        <li>你</li>
        <li>好</li>
        <li>呀</li>
    </ul>
</body>

如果你的答案是红色,那么恭喜你答错了!

这里要特别注意!注意!再注意!nav类虽然是类选择器,但是它是继承类,而上文已经说明继承的权重是最小的,所以答案应该是绿色。

★复合选择器的权重

第一个小li标签是什么颜色?
<body>
    <style>
        .nav li {
            color: red;
        }

        .nav .green {
            color: green;
            font-weight: 600;
        }
    </style>
    <ul class="nav">
        <li class="green">你</li>
        <li>好</li>
        <li>呀</li>
    </ul>
</body>

 以上示例中第一个小li标签是绿色加粗的,这是因为复合选择器的权重是可以叠加的。叠加过程如下:

.nav li 权重=(0010)+(0001)=(0011)

.nav .green权重=(0010)+(0010)=(0020)

根据比较规则得,(0020)>(0011),所以是绿色的

最后

希望大家可以熟练掌握这三大特性的规则,熟悉之后你再去查看一下失效的css代码,也许就能迎刃而解了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在逃小屁王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值