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

nth-child不响应类选择器

邴和雅
2023-03-14
问题内容

除非不应该这样,但我似乎nth-child无法承认类选择器。

我在另一个div内说了4个div,所有的类和id都在上面。我需要选择具有该类的div的第一个实例。例如:

#content .foo:nth-child(1) { margin-top: 0; }

并且显然再次first-child获得相同的效果,但它不会影响任何div。

现在,如果我要强制它与该div一起使用,我可以这样做:

#content .foo:nth-child(3) { margin-top: 0; }

碰巧它是#content中的第3个div,这毫无意义,因为我需要使用该类获取任何东西的第一个实例。

<div id="content">  
  <div id="action-bar"> </div>
  <div id="message"> </div>
  <div class="table"> </div>
  <div class="clear"> </div>
</div>

这是HTML的示例,我已经尝试nth-of-type过像这样:

#content .table:nth-of-type(1) { margin: 0 }

同样,只有当我说时,它才会响应nth-of-type(3)


问题答案:

尝试使用:nth-of-type()伪选择器:

#content .foo:nth-of-type(1) { margin-top: 0; }

请注意,:nth-of-type()计数具有相同名称的元素。因此,.foo:nth-of-type(1)将不会选择具有 foo
类的第一个元素,而是选择按相同名称分组的元素列表中第一个元素的第一个元素。如果您有这样的文件:

<div>
    <i class="foo">1</i><i>x</i><i class="foo">2</i>
    <b class="foo">3</b><b>x</b><b class="foo">4</b>
</div>

.foo:nth-of-type(1)将选择元素<i class="foo">1</i><b class="foo">3</b>并且两者都是其自身的第一个类型。



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

  • 问题内容: 我检查这个选择器: 选择器不起作用? 我在firefinder中检查了此内容,但没有返回任何内容(没有信息显示零元素) 然后检查: 并返回h3,所以选择器几乎是不错的选择,但是this(h3的文本为’a’)的文本出错。 问题答案: 不是 原本是CSS3选择器感谢TJCrowder的链接,但它没有做到,很可能是因为它的工作方式往往会导致严重的性能和过度选择问题。例如,如果元素匹配给定的字

  • 问题内容: 是否可以使第n个子级伪选择器与特定类一起使用? 我想让第二个DIV.red变成红色,但是它没有应用预期的颜色。 不仅如此,当您指定它时,它会将第5个DIV更改为红色: 指定此选项后,它将第8个DIV更改为红色: 它似乎落后了一个DIV。该示例中只有8个DIV标签,所以我不知道为什么nth-child(9)甚至可以工作。使用Firefox 3.6进行测试,但在我的实际生产代码中,Chro

  • 问题内容: 有没有办法选择 匹配(或不匹配)任意选择器的 第n个孩子?例如,我要选择每个奇数表行,但要在行的子集内: 但是,无论它们是否属于“ row”类,似乎似乎都在计算所有元素,因此我最终得到了一个 偶数 “ row”元素,而不是我要寻找的两个元素。发生同样的事情。 有人可以解释为什么吗? 问题答案: 由于对工作方式和工作的误解,这是一个非常普遍的问题。不幸的是,目前还没有基于选择的解决方案至

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

  • 问题内容: 根据介绍,我们可以在jQuery中使用大量CSS选择器,但此处未提及。但是,当我测试以下内容(使用Google的jQuery1.7.1)时,它实际上可以在Firefox,Chrome和IE 9上运行,但不能在IE 8仿真模式下的IE 9上运行: 那是怎么回事?好像jQuery生成了CSS代码一样,并且以某种方式注入了它,然后在支持所用选择器的浏览器上可以正常工作。但这很奇怪。 最重要的