【问题标题】:Combining CSS pseudo-classes nth-child and not [duplicate]结合 CSS 伪类 nth-child 而不是 [重复]
【发布时间】:2014-03-07 16:51:50
【问题描述】:

我有一张桌子,我想为每个备用行添加阴影,除了“openingTimes”类的行。

这个开场时间行不应该加阴影,但是这个行之后的模式应该继续,像这样,(加粗表示阴影!):

[ 信息 1 ] [ 信息 2 ] [ 开放时间行 ] [ 信息 3 ] [ 信息 4 ] [ 信息 5 ] [ 信息 6 ]

我的 CSS 是:

table tr:not(.openingTimes):nth-child(even)
{
    background-color: #eeeeee;
}

但这会导致:

[ 信息 1 ] [ 信息 2 ] [ 营业时间行 ] [ 信息 3 ] [ 信息 4 ] [ 信息 5 ] [ 信息 6 ]

我希望 Info 3 被遮蔽,并且模式从那里继续。

我做错了什么?谢谢!

编辑:好的,这是一个小提琴:http://jsfiddle.net/QWjnm/

【问题讨论】:

  • JSfiddle...你懂的。
  • 为什么不对每一行添加一个类(不包括.openingTimes),然后将nth-child() 应用于该类?
  • nth-child 不适用于具有不同类的兄弟姐妹,至少不是您想象的那样。
  • @AustinBrunkhorst 我可以,是的,我只是想澄清这个选择器的行为,因为结果让我感到惊讶:)
  • 要重新交互 nth 选择器只对类元素起作用。

标签: css css-selectors pseudo-class


【解决方案1】:

nth-child 语法不够复杂,无法满足您的需求。

但是,在您的示例中,您可以编写

tr:first-child, tr:nth-child(2n+4)

用于选择器。

这意味着使用第一个孩子,以及从第四个开始的每个偶数孩子。

updated fiddle

这不是一个理想的解决方案;您不再对 openingTimes 类有任何控制权,但是我想不出您可以使用的任何解决方案。对不起!

【讨论】:

  • “从四岁开始每隔一个孩子。”错了,从第四个开始每隔一个甚至个孩子。
  • @Apolo 嘿,“每个其他”与“每个”并不相同。查一下。而且我什至不确定这句话在你编辑后语法是否正确。
  • 我只是想精确一点,但英语不是我最喜欢的语言,如果你觉得不对,请重新编辑
  • 但是“从四岁开始的所有其他孩子”让我觉得是 4,5、6 等等......
  • @Apolo 但它的真正含义是 4、6、8 等等。我可以进行编辑,使其既正确又清晰......
猜你喜欢
  • 2014-08-01
  • 2020-12-24
  • 2018-06-13
  • 1970-01-01
  • 2021-07-23
  • 1970-01-01
  • 2014-05-21
  • 2011-07-22
相关资源
最近更新 更多