详解css3中的:nth-of-type(n)

该选择器,虽然之前用的也不少,但感觉理解的不是特别好,使用的时候效率太低,所以今天就总结一下,嗯

:nth-of-type() CSS 伪类   匹配同类型中的第n个同级兄弟元素。

先来看个简单的例子理解一下上面的意思:

HTML代码如下

<div id="wrap">
    <p>one</p>
    <div>我是div</div>
    <p>two</p>
    <p>three</p>
    <p>four</p>
    <p>five</p>
    <p>six</p>
</div>
css代码如下:
    <style>
        #wrap p:nth-of-type(3) {
            background: red;
        }

        #wrap p:nth-child(3) {
            background: yellow;
        }
    </style>

猜猜结果,变红的是哪个?

首先肯定是p标签里的背景变红,通俗一点理解p:nth-of-type(3)代表的就是,所有兄弟节点中找标签为p的,然后找到的第三个p标签背景为红色

所以,three背景为红咯

注意:不要和:nth-child(n)搞混了,上面的背景变黄的是two,因为,该选择器是找父元素的第三个子元素,如果该子元素为p,则其变为黄色,如果,第三个子元素不是p元素,则没有子元素的背景变为黄色

ok,回到我们今天讨论的重点:nth-of-type(n)

:nth-of-type(n):n可以是一个数字,一个关键字,或者一个公式。

数字,我就不多说了,注意是从1开始的哦(不是从0)

关键字:可选的有:odd(奇数)、even(偶数)

 #wrap p:nth-of-type(even) {
            background: red;
        }

此时,背景变为红色的就是two、four、six啦

公式:使用公式(an+ b).描述:a代表一个循环的大小,N是一个计数器(从0开始),以及b是偏移量。

怎么理解呐?

比如像上面的想要让偶数p变为红色背景,那么用公式就是:

#wrap p:nth-of-type(2n) {
            background: red;
        }

效果和上面的一样。

个人还是比较喜欢用公式的,功能真的很强大,比如我们想要让奇数的变红公式就是2n+1喽,想要让3的倍数的变红,公式就是3n啦,依次类推。

哦,说说一下,兼容性

选择器        Chrome            IE        Firefox         Safair          Opera
:nth-of-type()4.09.03.53.29.6

嗯、其实整理完,也很简单啦,希望看完的你也有这样的感觉。

nth-child和nth-of-typeCSS的两个伪选择符,用于选择特定位置的元素。 nth-child(n)选择的是在其父元素下的第n个子元素,无论其类型是什么。例如,如果我们使用nth-child(2)选择器,它会选择父元素下的第二个子元素,无论其类型是什么。 而nth-of-type(n)选择的是在其父元素下,与其同类型的第n个子元素。也就是说,它只会选择与给定类型相同的元素。例如,如果我们使用nth-of-type(2)选择器,它只会选择父元素下同类型的第二个子元素。 因此,nth-child和nth-of-type之间的区别在于选择的元素类型不同。nth-child不考虑元素的类型,而nth-of-type只考虑与给定类型相同的元素。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [CSS3nth-of-typenth-child区别分析详解nth-of-typenth-child对比区别,CSS3强大选择器nth-of-type...](https://blog.csdn.net/MFWSCQ/article/details/89150093)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [详解CSS nth-child与nth-of-type的元素查找方式](https://download.csdn.net/download/weixin_38592256/14831190)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值