Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情。
[CSS3中:nth-child和:nth-of-type的区别深入理解。 关于:nth-child和:nth-of-type的区别之前一直没太注意,经深入理解才发现里面其实暗藏玄机]
关于:nth-child和:nth-of-type的区别之前一直没太注意。最近打算深入了解一些CSS3,才发现里面其实暗藏玄机。
:nth-child可以选择父元素下的字元素,:nth-of-type也可以。但是它们到底有什么区别呢?
概念解释:
1、:nth-child() 选择器 :nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型,n 可以是数字、关键词或公式。
2、:nth-of-type(n) :nth-of-type(n) 选择器匹配属于父元素的特定类型的第 N 个子元素的每个元素,n 可以是数字、关键词或公式。
其实区别很简单::nth-of-type为什么要叫:nth-of-type?因为它是以"type"来区分的。也就是说:ele:nth-of-type(n)是指父元素下第n个ele元素,
而ele:nth-child(n)是指父元素下第n个元素且这个元素为ele,若不是,则选择失败。
这里附上一个小例子:
\
复制代码
代码如下:
<div>
<ul class="parent-element">
<p class="child1">zero</p>
<li class="child2">one</li>
<li class="child3">two</li>
<li class="child4">three</li>
<li class="child5">four</li>
</ul>
</div>
上面这个例子,.demo li:nth-child(2)选择的是<li>one</li>节点,而.demo li:nth-of-type(2)则选择的是<li>two</li>节点。
拓展:
odd 和 even 是可用于匹配下标是奇数或偶数的子元素的关键词,odd选择奇数 even选择偶数;
上述例子
-
li:nth-child(odd):选择的是li的父级元素下的,奇数元素且该元素是li元素, 所以是
<li class="child3">two</li>和<li class="child5">four</li>( li:nth-child(n) n=3和 n=5). -
li:nth-child(even):选择的是li的父级元素下的,偶数元素且该元素是li元素 ,所以是
<li class="child2">one</li>和<li class="child4">three</li>( li:nth-child(n) n=2和 n=4 和 n=6) -
p:nth-of-type(odd):选择的是P的父级元素下的,奇数的P元素 ,所以是
<li class="child2">one</li>和<li class="child4">three</li>( li:nth-of-type(odd) n=1和 n=3) -
p:nth-of-type(even):选择的是P的父级元素下的,偶数的P元素 ,所以是
<li class="child3">two</li>和<li class="child5">four</li>( li:nth-of-type(even) n=2和 n=4 )