【问题标题】:How to get the second of two div class instances using CSS? [duplicate]如何使用 CSS 获取两个 div 类实例中的第二个? [复制]
【发布时间】:2015-08-22 08:39:46
【问题描述】:

如果我使用以下代码:

<style>
.a:nth-child(2){
    color: blue
}
</style>

<div class="a">Hello</div>
<div class="b">Goodbye</div>
<div class="a">Hello 2</div>

类名为'a'的第二个div的文本没有变为蓝色。

但是,如果我重新排列 div

<style>
.a:nth-child(2){
    color: blue
}
</style>

<div class="a">Hello</div>
<div class="a">Hello 2</div>
<div class="b">Goodbye</div>

这行得通。如第一个示例中使用纯 CSS 编写的那样,如何按类名获取第二个 div?

此外,:nth-of-type(n) 语法的工作原理完全相同。

这是一个演示这个的小提琴:

http://jsfiddle.net/mrmayfield/r61pztpb/

【问题讨论】:

  • 不可能:/ 你必须使用 javascript
  • 好的,确认是不可能的。谢谢大家。
  • 你知道它是否总是最后一个吗? jsfiddle.net/r61pztpb/2
  • 这不太可能,但感谢您的建议。

标签: html css css-selectors


【解决方案1】:

你需要使用:

.a:nth-of-type(3){
    color: blue
}

或者:

.a:nth-child(3){
    color: blue
}

因为nth-of-type 是元素的类型(在本例中为div),而nth-child 是其父容器中的子编号。

更新fiddle

【讨论】:

  • 但是如果我有动态加载的内容,并且我不知道我的第一个 'a' div 和我的第二个 'a' div 之间有多少个 div,我该如何在 CSS 中构造它?我肯定会认为 CSS 有一个类似于 jQuery 的 .eq() 函数的功能,但似乎没有——我已经阅读了上面列出的类似问题的答案,但我仍然不清楚这个功能是否存在在 CSS3 中。
  • 是的,那时你必须使用 javascript。
  • 疯了。感谢您的帮助。
  • 好消息是CSS4 :-) 中会有这样的东西。
  • @kaz 坏消息是不会有 CSS4 :P .. CSS3 引入了模块化 CSS,每个模块可以有不同的修订版。最终——并且希望——有一天 3 会下降,它会继续作为 CSS 存在:D
猜你喜欢
  • 1970-01-01
  • 2016-11-26
  • 2014-11-24
  • 2020-02-27
  • 2015-11-03
  • 1970-01-01
  • 2015-11-23
  • 2021-09-22
  • 2017-11-25
相关资源
最近更新 更多