写点什么

CSS 之选择器(八):+ 和 ~

作者:Augus
  • 2021 年 12 月 16 日
  • 本文字数:1042 字

    阅读完需:约 3 分钟

CSS之选择器(八):+ 和 ~

往期链接:


CSS之选择器


CSS之选择器(二)


CSS之选择器(三)


CSS之选择器(四)


CSS之选择器(五)


CSS之选择器(六)::before和::after


CSS之选择器(七):empty

前言

在我们开发的时候,应该会遇到在一个父节点下相同节点实现相同的样式,比如一个 ul 标签下 n 个 li 标签。那今天我们来介绍两个应用比较广泛的选择器 + 和 ~ ,他也可以实现我们前面说到的效果。

+ 和 ~

他们两个都是作用于当前节点后面的同胞节点,不同的点是:


  • +:针对紧随该节点后面的节点。

  • ~是针对后面所有的节点,包括紧随该节点后面的节点。


通常代码格式如下所示:


input:checked + div {} input:checked ~ div {}
复制代码

代码实现

下面我们就通过一个案例具体向大家展示一下,这个二者选择器的区别。


先来一张效果图。



这里简单说一下,


  • 第一张图,是通过 + 控制的

  • 第二张图,是通过 ~ 控制的

  • 而第三张图,是通过 + 和 class 控制的


接下来请看代码:


<div class="specify-selector">  <ul class="list">    <li>我是资源</li>    <li class="current">当前资源</li>    <li>我是资源</li>    <li>我是资源</li>    <li>我是资源</li>  </ul>  <ul class="list">    <li>我是资源</li>    <li class="current-both">当前资源</li>    <li>我是资源</li>    <li>我是资源</li>    <li>我是资源</li>  </ul>  <ul class="list">    <li>我是资源</li>    <li class="current-filter">当前资源</li>    <li>我是资源</li>    <li class="filter">我是资源</li>    <li>我是资源</li>  </ul></div>
复制代码


.specify-selector {  display: flex;  .list {    outline: 1px solid pink;    width: 300px;    line-height: 2;    font-weight: bold;    font-size: 20px;    color: black;    & + .list {      margin-left: 30px;    }    li {      padding: 0 15px;    }    .current {      background-color: blue;      color: #fff;      & + li {        background-color: yellow;        color: #fff;      }    }    .current-both {      background-color: blue;      color: #fff;      & ~ li {        background-color: yellow;        color: #fff;      }    }    .current-filter {      background-color: blue;      color: #fff;      & ~ .filter {        background-color: yellow;        color: #fff;      }    }  }}
复制代码


好,今天就到这里了,今天努力的你依然是最棒的,Bye Bye!!!

用户头像

Augus

关注

爱瞎搞的软件开发工程师 2021.06.10 加入

某摸鱼集团

评论

发布
暂无评论
CSS之选择器(八):+ 和 ~