CSS3中伪类选择器nth-child(n)和nth-of-type(n)的区别

:nth-child(n)

该选择器匹配父元素中的第 n 个子元素,元素类型没有限制。
n 可以是一个数字,一个关键字,或者一个公式。
注意:该选择器匹配同类型中的第 n 个同级兄弟元素。

:nth-of-type(n)

该选择器匹配属于父元素的特定类型的第 N 个子元素的每个元素.
n 可以是数字、关键词或公式。

注意:下标n是从1开始

实例1:
获取第一个li标签
在这里插入图片描述

li:nth-child(1){
			background-color: red;
}
/*li:nth-of-type(1){
			background-color: red;
}*/

使用nth-child和nth-of-type和好像没有区别,都能达到一样的效果:
在这里插入图片描述
可当我们在li前面插入一个元素,就会发现使用nth-child(1)获取不到第一个li
在这里插入图片描述
使用 li:nth-child(2)才找到我们想要的第一个li元素
在这里插入图片描述
这是因为 E:nth-child(n)匹配的是与E同级的所有元素中的第n个,且类型为E的元素,该示例中的div与li同级,第一个元素是div而不是li,所以 li:nth-child(1) 既不能匹配到第一个元素,也不能匹配到第一个li,第一个li是同级的第二个元素,所以 li:nth-child(2) 匹配第二个元素且类型为li的元素,可以找到第一个li。
显然,这在使用中会带来不便,不符合我们找到li元素中的第一个的本义。
遇到在这种情况时,E:nth-of-type(n) 更符合我们的需求,它会先将所有的E同级的所有的E提取出来,再选中其中的第n个。
示例如下:
在这里插入图片描述
在该示例中,li:nth-of-type(1) 是先将所有的同级li取出,然后选中第一个,不管同级的是否有其他元素,它只选择同级元素中的li 的第一个,不受其他元素的影响。

相同点

:nth-child(n) 和 :nth-of-type(n) 中的n都可以是数字、关键词或公式
数字: 就是匹配到符合条件的元素中的第n个
关键字: 常用的有oddeven
odd表示奇数,even表示偶数
例:使奇数行的li背景颜色为蓝色,偶数行的li背景为红色
在这里插入图片描述
公式:
例:使li的奇数行背景为红色,偶数行背景为蓝色
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值