选择器的权重中对交集选择器,分组(并集)选择器,以及关系选择器的理解

先看如下代码

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            div{
                color:red;
            }
            .box1{
                color:blue;
            }
        </style>
    </head>
    <body>
       <div class="box1">我是一个div</div>
    </body>
</html>

在这里插入图片描述

交集选择器,意味着会“相加”

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            div.box1{
                color:red;
            }
            .box1{
                color:blue;
            }
        </style>
    </head>
    <body>
       <div class="box1">我是一个div</div>
    </body>
</html>

在这里插入图片描述

分组选择器,意味着,各算各的

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            div, .box1{
                color:red;
            }
            .box1{
                color:blue;
            }
        </style>
    </head>
    <body>
       <div class="box1">我是第一个div</div>
       <div class="box2">我是第二个div</div>
    </body>
</html>

在这里插入图片描述

在这里插入图片描述

关系选择器,是针对最后选择的是谁来决定的,和最后选中的前面的元素是没有关系的(也就是该语句对最后选中的元素的前面的元素是没有设置样式的)

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            div{
                color:blue;
            }
            div span{
                color:red;
            }
        </style>
    </head>
    <body>
       <div class="box1">
           我是div
           <span>我是div中的span
               <i>我是span中的i标签</i>
           </span>
       </div>
    </body>
</html>

在这里插入图片描述

上面的关于关系选择器的权重理解有误,具体可以参考下面的“小米商城”左侧导航条中的这个问题来分析和理解

在这里插入图片描述

为什么这个没有顶到右边去呢?

在这里插入图片描述

打开工具开始检查

在这里插入图片描述

原来是前面的样式设置中,给a设置了外边距的问题,为了不让前面的样式对后面产生影响,可以使用样式重置的方法去解决这个问题

在这里插入图片描述

样式重置了,但是,还是没有解决问题在这里插入图片描述

考虑是样式重置的问题,打开调试工具可以看到

在这里插入图片描述

这反应了一个问题.nav-wrapper li a的权重,大于.left-menu a的权重,进一步可以确定上面用到的是关系选择器,对于非分组选择器的样式权重问题,即使是关系选择器,它的权重也要进行相加计算来比较

在这里插入图片描述

为了解决上述问题,我们可以将.left-menu a修改为.nav .left-menu a

在这里插入图片描述

给下面设置hover时

在这里插入图片描述

如果我这样设置,发现却没有生效

在这里插入图片描述
在这里插入图片描述

但是,这句话却生效了

在这里插入图片描述

没有生效的那句话,是因为那句话的结束语是li然后再给的hover,后面没有另外加承受对象,因此.nav .left-menu li:hover{中的color的设置,还是涉及到继承的问题,这就导致了它不能生效,因为.nav-wrapper li a:hover的落脚点是a,受影响的也是a,<所以这里千万不要以为.nav .left-menu li :hover的优先级是比.nav-wrapper li a:hover的优先级高,这是很明显的错误,因为此处他们的落脚点不同,一个是li 一个是hover,这也告诉我们一个道理,要想给文字设置颜色,尽量直接点,尽量不要去利用color的继承,这样比较容易出问题

}

上面告诉我们一个道理,在进行权重计算时,一定要先看看落脚点是否相同

为了解决以上问题,我们可以这样处理

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当谈到并集选择交集选择时,通常是指在CSS中使用的两种基本选择:并集选择(Union Selector)和交集选择(Intersection Selector)。 1. 并集选择: 并集选择用于选择具有相同样式的多个元素。它使用逗号(,)将多个选择组合在一起,从而选择匹配任一选择的元素。语法如下: ```css selector1, selector2, selector3 { /* 样式规则 */ } ``` 在上述代码中,selector1、selector2和selector3是要选择的不同元素的选择。这些选择可以是任何有效的CSS选择,如元素选择、类选择、ID选择等。通过使用并集选择,可以将相同样式应用于多个元素。 例如,以下代码将为所有具有class为"btn"的按钮元素和所有带有ID为"logo"的图像元素设置相同的样式: ```css .btn, #logo { /* 共享的样式规则 */ color: red; font-size: 16px; } ``` 2. 交集选择交集选择用于选择同时满足多个条件的元素。它使用空格(空格)将多个选择组合在一起,从而只选择匹配所有条件的元素。语法如下: ```css selector1 selector2 { /* 样式规则 */ } ``` 在上述代码中,selector1和selector2是要选择的不同元素的选择。通过交集选择,只有同时满足selector1和selector2条件的元素才会被选择。 例如,以下代码将为所有具有class为"btn"的按钮元素内部的段落设置特定的样式: ```css .btn p { /* 特定样式规则 */ color: blue; font-size: 14px; } ``` 在上述代码中,只有在class为"btn"的按钮元素内部的段落才会被选择,并应用特定的样式规则。 总结: 并集选择用于选择具有相同样式的多个元素,通过逗号将多个选择组合在一起。交集选择用于选择同时满足多个条件的元素,通过空格将多个选择组合在一起。这些选择在CSS中非常有用,可以用于创建灵活且复杂的样式规则。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值