在CSS中,是否可以定位由索引号标识的类属性?

Jus*_*ard 8 html javascript css dom css-selectors

我正在尝试通过其索引或迭代来定位一个类元素(在DOM中出现多次),严格使用CSS.

我知道实现这个的几种不同方法:我可以在一个数组中抛出元素并检索所述元素的特定索引(Javascript).我可以用#ID标记我想要定位的元素.我可以通过指定attribute(.element[href="link"])来优化目标元素.伪类:first-child:last-child只能定位(父)元素的儿童(咄!).

示例:我.class在DOM中出现了5次,我想影响该元素第3次迭代的CSS属性.class.

我希望有一个伪类,.element:index-3.那里可能有一些东西,让你做到这一点.

uno*_*nor 4

如果我理解正确的话,您想要使用内容“Me!”来设置元素的样式。在这个例子中:

<body>
  <p>Not me.</p>
  <p class="me">Not me.</p>
  <div><p class="me">Not me.</p></div>
  <p class="me">Me!</p>
  <div><div><p class="me">Not me.</p></div></div>
  <p class="me">Not me.</p>
</body>
Run Code Online (Sandbox Code Playgroud)

这应该是可能的在某些情况下(见下文)可以使用伪类:nth-of-type

.me:nth-of-type(3) {color:red;}
Run Code Online (Sandbox Code Playgroud)

正如 ScottS 在评论中指出的那样,只有当所有类都位于相同的元素类型(例如p)时,这才有可能。

  • 这个解决方案失败了:“nth-of-type”实际上并不查看和计算类,而是查看和计算元素的_type_。因此,示例中的“.me:nth-of-type(3)”仅针对正确的“p”,因为它是直接位于“div”下的第三个“p”元素_并且_它有一个“.me”类。[This fiddle](http://jsfiddle.net/N9btF/3/) 显示引入另一个不带 `.me` 类的 `p` 会导致选择器失败。 (4认同)