81

有什么办法可以将 css3 限制nth-of-type在一个类中吗?我有动态数量的section元素,它们具有不同的类来指定它们的布局需求。我想每 3rd 抓取一次.module,但似乎nth-of-type查找类元素类型然后计算类型。相反,我想将其限制为仅.modules。

谢谢!

JSFiddle 演示:http: //jsfiddle.net/danielredwood/e2BAq/1/

HTML:

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

​CSS:

.featured {
  width:31%;
  margin:0 0 20px 0;
  padding:0 3.5% 2em 0;
  float:left;
  background:#ccc;
}
  .featured.module:nth-of-type(3n+3) {
    padding-right:0;
    background:red;
  }
  .featured.video {
    width:auto;
    padding:0 0 2em 0;
    float:none;
  }​
4

2 回答 2

77

不幸的是,没有办法(至少我不知道)选择nth-of-type一个类,因为nth-of-class不存在。您可能必须.module手动为每三分之一添加一个新类。

于 2012-06-07T12:38:44.917 回答
43

看来您真正想要的是css4 :nth-match 选择器,但大多数浏览器还没有真正支持它,所以目前,唯一的方法是使用 javascript

$(".featured.module").filter(function(index, element){
    return index % 3 == 2;
}).addClass("third");

http://jsfiddle.net/w3af16dj/

于 2015-04-21T02:31:07.260 回答