当前位置: 首页 > 面试题库 >

nth-child对班级无反应

羊城
2023-03-14
问题内容

是否可以使第n个子级伪选择器与特定类一起使用?

我想让第二个DIV.red变成红色,但是它没有应用预期的颜色。

不仅如此,当您指定它时,它会将第5个DIV更改为红色:

div.red:nth-child(6)

指定此选项后,它将第8个DIV更改为红色:

div.red:nth-child(9)

它似乎落后了一个DIV。该示例中只有8个DIV标签,所以我不知道为什么nth-child(9)甚至可以工作。使用Firefox
3.6进行测试,但在我的实际生产代码中,Chrome中出现了相同的问题。我不了解应该如何工作,请澄清一下。

同样,这会将第6个DIV更改为红色,但是我真正想要的是将第2个DIV.red更改为红色:

div.red:nth-of-type(6)

而且我不明白为什么nth-child()和nth-of-type()会有不同的响应,因为在文档中只有八个相同类型的标签


问题答案:

由于没有:nth-of-class()选择器,因此无法在CSS中按类进行过滤。解决此问题的一种方法是将两种不同的divs放入自己的组,然后根据这些组进行选择。例如:

<div class="orange">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

<div class="red">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

使用此选择器:

div.red div:nth-child(2) {
    background: red;
}

关于您的问题的最后一点:

而且我不明白为什么nth-child()和nth-of-type()会有不同的响应,因为在文档中只有八个相同类型的标签。

对于您提供的代码, 应该没有 任何区别。我对其进行了测试,并且两个伪类均按预期工作。但是,通常:

:nth-child()在兄弟姐妹的整个级别上操作,而不考虑其他任何简单的选择器。然后,如果第n个孩子不在简单选择器匹配的对象中,则不匹配任何内容。

:nth-of- type()在给定类型的同级对象上进行操作,而无需考虑其他简单选择器。然后,如果该类型的第n个元素不在简单选择器匹配的元素之中,则不匹配任何内容。



 类似资料:
  • 问题内容: 这是我的CSS: 工作,现在到处(用这个在我的网站),除了Internet Explorer 8中...... 是否有可能在IE8中使用nth-child?这是该浏览器的最差版本,无法正常工作,我找不到解决方法。 @ edit2:我刚刚注意到 实际上是在IE8中工作!但是这个: 不管用。那么发生了什么? 问题答案: 您可以(ab)使用相邻的同级组合器()通过可在IE7/ 8中使用的CS

  • 问题内容: 我正在尝试更改div内奇数div的样式。由于某种原因,当它位于另一个div内时,它会影响我的所有div。这是我的常规div和奇数div的代码: 出于某种原因,当将其包裹在我的div中时不起作用,但是当它们不包裹在任何div中时却起作用。 未包装在div中时的工作版本: ``如何使初始代码与上述代码相同? 问题答案: 类似于它们必须全部来自同一父级。如果需要这些包装器,请改用这些包装器:

  • 问题内容: 除非不应该这样,但我似乎无法承认类选择器。 我在另一个div内说了4个div,所有的类和id都在上面。我需要选择具有该类的div的第一个实例。例如: 并且显然再次获得相同的效果,但它不会影响任何div。 现在,如果我要强制它与该div一起使用,我可以这样做: 碰巧它是#content中的第3个div,这毫无意义,因为我需要使用该类获取任何东西的第一个实例。 这是HTML的示例,我已经尝

  • 本文向大家介绍css3的:nth-child和:nth-of-type的区别是什么?相关面试题,主要包含被问及css3的:nth-child和:nth-of-type的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 :nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型。 :nth-of-type(n) 选择器匹配属于父元素的特定类型的第 N 个子元素。 n

  • 问题内容: 我需要将表的每两行设置为灰色,如果可能的话,我希望使用nth-child。 我已经和克里斯·科耶尔(Chris Coyier)的第一个孩子测试员混为一谈,但仍然无法[理解。 我需要以下公式: 等等。我不希望在html中放置一个类,因为我敢肯定这将是一些建议。如果有办法与nth-child合作,这就是我想要的。 问题答案: 意识到您正在做4组,那么您可以看到每个第4个元素和每个第4个元素

  • 问题内容: 以以下代码为例: 是否可以使用或不选择全部元素的 一半 ?在上面的例子中,代码应该选择前/后 两个 s,然后如果我将s 的数量增加到六个,它将选择前/后 三个 。 我觉得我将不得不使用JavaScript … 问题答案: 在纯CSS中,您能够获得与之 接近 的唯一方法是对或进行选择。如果您只需要最后一半(而不是奇数或偶数),则必须使用JavaScript / jQuery。 使用jQu