无法理解。
使用以下css:
.bloc .field:nth-last-child(2){ ...some values... }
和以下的html(好吧,haml):
.bloc
.field
.field
.field
.field
.clearfix
.clearfix div在选择器中被计算,从中我不能得到好的.field的div是专门设计的。
这对我来说似乎是个错误,但我可能错了。同样的问题适用于nth-child。
答案 0 :(得分:4)
这里最大的误解是如何使用:nth-child()
进行过滤。
.bloc .field:nth-last-child(2)
表示:
“选择 .field
类中.bloc
类的所有倒数第二个元素。
这并不意味着:
“选择.field
”内的所有倒数第二个.bloc
元素。
根据这种理解,您只需将选择器更改为.bloc :nth-last-child(3)
。
然而,bažmegakapa的第二段回答很有意义。您应该删除.clearfix
元素并使用不同的float包含技术。 "micro clearfix"是个不错的选择。另一种方法是将overflow: hidden
添加到.bloc
。
答案 1 :(得分:3)
只需删除clearfix div。 :nth-last-child()
和:nth-last-of-type()
选择器无法按预期方式工作。他们不会对类名进行区分(第一个不区分,只从倒数计算,第二个只对元素类型进行区分)。
有数千个clearing techniques,其中只有一部分需要添加标记。只需overflow: hidden
或overflow: auto
在容器上。如果您可以使用:nth-last-child
,您还可以使用::after
使用的清算技术。
答案 2 :(得分:2)
如果是:nth-last-child(2)
,则选择该类的元素。
如果您使用.field
和.clearfix
元素的其他类型使用:nth-last-of-type()
,则可以达到您真正想要的效果。
答案 3 :(得分:-1)
尝试这个,似乎是先找到一个.clear给我:
.bloc .field:nth-last-child(2) { color: #CC0000; }