首页 >web前端 >css教程 >CSS `nth-of-type` 可以限制为具有特定类的元素吗?

CSS `nth-of-type` 可以限制为具有特定类的元素吗?

Linda Hamilton
Linda Hamilton原创
2024-12-24 06:56:10560浏览

Can CSS `nth-of-type` be Limited to Elements with a Specific Class?

将 CSS 3 nth-of-type 限制为特定类

问题:

有没有一种方法可以改进 CSS 3 的 nth-of-type 选择器,使其仅针对特定范围内的元素类?

背景:

考虑一个具有动态部分的场景,该部分具有由不同类表示的不同布局。目标是用“.module”类突出显示每第三个部分,而不影响其他元素。

解决方案:

不幸的是,没有一种本地方法可以使用 nth-of-type 来实现这一点。原因是 CSS 不支持 nth-of-class。因此,将 nth-of-type 限制为一个类是不可能的。

作为替代方案,有必要手动向每第三个部分添加一个新类,例如“.third-module” “.module”类。然后可以使用 nth-of-type 来定位此自定义类。

HTML:

<section class="featured video">
  <h1>VIDEO</h1>
</section>
<section class="featured module">
  <h1>NOT A VIDEO</h1>
</section>
<section class="featured module third-module">
  <h1>NOT A VIDEO (3)</h1>
</section>
<section class="featured module">
  <h1>NOT A VIDEO</h1>
</section>
<section class="featured module third-module">
  <h1>NOT A VIDEO (6)</h1>
</section>
<section class="featured module">
  <h1>NOT A VIDEO</h1>
</section>
<section class="featured module third-module">
  <h1>NOT A VIDEO (9)</h1>
</section>

CSS:

.featured {
  width: 31%;
  margin: 0 0 20px 0;
  padding: 0 3.5% 2em 0;
  float: left;
  background: #ccc;
}

.featured.module.third-module:nth-of-type(3n+3) {
  padding-right: 0;
  background: red;
}

.featured.video {
  width: auto;
  padding: 0 0 2em 0;
  float: none;
}

此解决方案确保只有具有“.third-module”类的“.module”部分才会收到所需的样式,如下所示它们是第 n 个类型选择器的具体目标。

以上是CSS `nth-of-type` 可以限制为具有特定类的元素吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn