首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么nth-of-type()和nth-child()与不相关的元素断开

nth-of-type()和nth-child()是CSS选择器中用于选择特定位置的元素的伪类。它们可以根据元素在其父元素中的位置来选择元素。

nth-of-type()选择器会选择父元素中特定类型的元素中的第n个元素。它的语法是:nth-of-type(n)。其中,n可以是一个具体的数字,也可以是关键词odd(奇数)或even(偶数)。

nth-child()选择器会选择父元素中的所有子元素中的第n个元素。它的语法是:nth-child(n)。同样,n可以是一个具体的数字,也可以是关键词odd或even。

这两个选择器与不相关的元素断开是因为它们只会选择与它们所应用的元素类型相匹配的元素。如果在父元素中存在其他类型的元素,这些选择器不会考虑这些元素的位置。

举个例子来说明,假设有以下HTML结构:

代码语言:txt
复制
<div>
  <p>第一个段落</p>
  <span>一个span元素</span>
  <p>第二个段落</p>
  <span>另一个span元素</span>
</div>

如果我们使用nth-of-type(2)选择器,它会选择父元素中第二个类型为p的元素,即第二个段落。而不会选择第二个span元素,因为它的类型与选择器不匹配。

同样地,如果我们使用nth-child(2)选择器,它会选择父元素中的第二个子元素,即第一个span元素。而不会选择第二个段落,因为它的类型与选择器不匹配。

综上所述,nth-of-type()和nth-child()选择器与不相关的元素断开是因为它们只选择与它们所应用的元素类型相匹配的元素,而不考虑其他类型的元素。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

css3选择器

属性选择器 E[attr]只使用属性名,但没有确定任何属性值 E[type="text"]指定属性名,并指定了该属性的属性值 E[attr~="value"]指定属性名,并且具有属性值,此属性值是一个词列表,并且以空格隔开,其中词列表中包含了一个value词,而且等号前面的“〜”不能不写 E[attr^="value"]指定了属性名,并且有属性值,属性值是以value开头的 E[attr$="value"]指定了属性名,并且有属性值,而且属性值是以value结束的 E[attr="value"]指定了属性名,并且有属性值,而且属值中包含了value 结构性伪类选择器 E:nth-child(n) 表示E父元素中的第n个字节点 p:nth-child(odd){background:red}/匹配奇数行/ p:nth-child(even){background:red}/匹配偶数行*/ p:nth-child(2n){background:red} E:nth-last-child(n) 表示E父元素中的第n个字节点,从后向前计算 E:nth-of-type(n) 表示E父元素中的第n个字节点,且类型为E E:nth-last-of-type(n)表示E父元素中的第n个字节点,且类型为E,从后向前计算 E:empty 表示E元素中没有子节点。注意:子节点包含文本节点 E:first-child 表示E元素中的第一个子节点==nth-child(1) E:last-child 表示E元素中的最后一个子节点 E:first-of-type 表示E父元素中的第一个子节点且节点类型是E的 E:last-of-type 表示E父元素中的最后一个子节点且节点类型是E的 E:only-child表示E元素中只有一个子节点。注意:子节点不包含文本节点 E:only-of-type 表示E的父元素中只有一个子节点,且这个唯一的子节点的类型必须是E。注意:子节点不包含文本节点

02
领券