Why .class_name:nth-child(even) counts elements without .class_name
用:nth-child()计数的规则是什么?这仅仅是一个错误吗?
1 2 3
| .info_row:nth-child(even) {
background: orange
} |
1 2 3 4
| Title
Category:
data |
如果我将div.info_row包装在其他中或删除,则很明显,.info_row:nth-child(even)是使用进行计数的,而没有.info_row类。
- 它会选择整个info_row-div,因此所有内容均为橙色,缺少空格.info_row :nth-child(even)
-
像nth-child这样的伪类会匹配元素,而不是元素类。添加一个类使它像过滤器一样起作用,并且变得更加严格。另外,实际的选择器将应用于.info_row元素,而不是其子元素。
-
这可能对developer.mozilla.org/en/docs/Web/CSS/:nth-child有帮助
-
如果我希望每个.info_row而不是其子级都受到规则影响,该怎么办?
-
为什么这样可以正常工作:jsfiddle.net/Zydnar/xuoxe6mj/1
-
@Zydnar因为它突出显示了info_rows,它是info_rows父级的偶数子级。 nth-child具有比您意识到的更复杂的规则。
-
@TylerH,但是在链接的小提琴中,父级没有类,因此我无法理解" info_rows是info_rows父级的偶数子代",对吗?
-
nth-child不在乎类。它关心孩子。添加.info_row:nth-child(2)之类的类只会限制它与您的元素匹配的次数。 nth-child(2)的工作原理背后的逻辑不会因为您在其前面抛出一个类而改变。 .info_row:nth-child(2)将仅匹配具有.info_row类的甚至是父级AND的子级的元素。
-
@TylerH,这就是答案,谢谢。
-
@TylerH:具有讽刺意味的是,:nth-??child()尽可能地简单易懂-它的作者对其读得太多,因此过于复杂。
您选择的是同一元素的第n个子元素,因此您可以
给它一个像.info_row :nth-child(even)这样的空格,这意味着它的第n个孩子,或者像.info_row >div:nth-child(even)
这样添加孩子div
1 2 3
| .info_row >div:nth-child(even) {
background: red;
} |
1 2 3 4
| Title
Category:
data |
您正在使用:nth-child()选择器,而您应该使用:nth-of-type()选择器:
1 2 3
| .info_row:nth-of-type(even) {
background: orange
} |
1 2 3 4 5 6 7 8
| Title
Category:
data
Category 2:
data |
说明
:nth-of-type()选择器选择与特定类型相对应的父元素的第n个子元素(即div标签)。另一方面,:nth-child()选择器选择父元素的第n个子元素,而不管其类型如何,因此也对h2元素进行计数。
- 您的解释是正确的,但是您对OP想要什么的假设似乎不正确。
-
@TylerH更新,这应该是OP想要的正确解决方案。
-
您的原始解释是正确的,您现在添加的解释是不正确的...
-
@BoltClock我现在很困惑,因为我一遍又一遍地阅读OP的问题。他/她是否不想将偶数.info_row元素设置为橙色?我真的很想更新我对正确答案的回答,这显然可以做到,但是整个问题的解释使我现在感到困惑。同样,答案在上次编辑后被标记为接受...
-
:nth-??of-type()中的"类型"不引用"选择器的其余部分"。"类型"是指标签名称。
-
啊哈,@ BoltClock,我明白你的意思了,我会花一点时间来更新它。谢谢!
.class:nth-??child(x)的意思不是"选择.class元素之间的数字x",而是"选择所有作为其父级数字x的.class元素"。
例如,div:first-child不会在以下位置选择div:
尝试:
1 2 3
| .info_row div:nth-of-type(even) {
background-color: orange;
} |
1 2 3 4
| Title
Category:
data |
或
1 2 3
| .info_row div:nth-child(even) {
background-color: orange;
} |
1 2 3 4
| Title
Category:
data |