微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CSS仅选择第一次出现的类

如何解决CSS仅选择第一次出现的类

我需要为第一次出现的类(.border添加样式,而不是其他样式。

HTML

<div class="col">
  <div>
    <div class="border">
      <section>
        <div>
          <div>
            <div class="border">No Border</div>
          </div>
        </div>
        <div>
          <div>
            <div class="border">No Border</div>
          </div>
        </div>
      </section>
    </div>
  </div>
</div>

CSS

.col{
  padding: 100px;
}
.col section{
  display: flex;
  justify-content: space-around;
  padding: 50px;
}

.col .border{
  border: solid;
}

https://jsfiddle.net/stemon/qw9ezu2h/2/

解决方法

第一种方法

在CSS中使用直接子级(>)选择器

.col > div >.border{
  border: solid;
}

.col{
  padding: 100px;
}
.col section{
  display: flex;
  justify-content: space-around;
  padding: 50px;
}

.col > div >.border{
  border: solid;
}
<div class="col">
  <div>
    <div class="border">
      <section>
        <div>
          <div>
            <div class="border">No Border</div>
          </div>
        </div>
        <div>
          <div>
            <div class="border">No Border</div>
          </div>
        </div>
      </section>
    </div>
  </div>
</div>

第二种方法

只需使用.col section .border{}来获得类border的第二次和第三次出现,以禁用与他们的边界,

.col .border{
  border: solid;
}
.col section .border{
  border:none;
}

.col{
  padding: 100px;
}
.col section{
  display: flex;
  justify-content: space-around;
  padding: 50px;
}

.col .border{
  border: solid;
}
.col section .border{
  border:none;
}
<div class="col">
  <div>
    <div class="border">
      <section>
        <div>
          <div>
            <div class="border">No Border</div>
          </div>
        </div>
        <div>
          <div>
            <div class="border">No Border</div>
          </div>
        </div>
      </section>
    </div>
  </div>
</div>

,

您应该这样做:

.col > div > .border{
    ... your code...
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。