Css 第n个子计算错误
我有一套div,我希望每三个div的右边都没有边距。当然,我认为第n个孩子(3n)可以工作。事实并非如此。我做了一些研究,在计算要影响哪些时,它似乎在计算父div中的所有元素。其结果是,它的目标不是每三个div,而是每三个恰好是div的元素。要详细说明,请看一下这个Css 第n个子计算错误,css,css-selectors,Css,Css Selectors,我有一套div,我希望每三个div的右边都没有边距。当然,我认为第n个孩子(3n)可以工作。事实并非如此。我做了一些研究,在计算要影响哪些时,它似乎在计算父div中的所有元素。其结果是,它的目标不是每三个div,而是每三个恰好是div的元素。要详细说明,请看一下这个 补偿不相关元素的唯一方法是使用不同的选择器。:nth-child()选择器在这里按预期工作,因为p和h1元素都是div元素的同级元素,共享同一父元素(即body元素) 在本例中,由于它们之间的唯一区别是元素类型: 在更复杂的情况下,
补偿不相关元素的唯一方法是使用不同的选择器。:nth-child()
选择器在这里按预期工作,因为p和h1元素都是div元素的同级元素,共享同一父元素(即body元素)
在本例中,由于它们之间的唯一区别是元素类型:
在更复杂的情况下,例如当您有具有不同类名、属性等的div元素时,您将无法使用纯CSS仅计算所需的元素。这是因为没有:nth-of-class()
或其他类似的选择器,也没有只计算与某个任意条件/选择器匹配的元素的方法。有关更详细的解释,请参见我对的回答
jQuery在某种程度上弥补了这个限制,但它的工作原理与:nth-child()
和:nth-of-type()
非常不同,并且可能并不总是提供足够的替换。没有与jQuery的:eq()
等价的CSS。有关差异的解释,请参阅。您可以使用nth of type
选项n类型
选择与n类型
匹配的该类型元素。因此,在下面的示例中,它将选择每隔3个div
元素
div:nth-of-type(3n){
background-color: blue;
color: white;
}
div:nth-of-type(3n) {
background-color: blue;
color: white;
}
div:nth-of-type(3n){
background-color: blue;
color: white;
}