美文网首页
nth-of-type()和nth-child()的区别

nth-of-type()和nth-child()的区别

作者: 迷失的信徒 | 来源:发表于2022-04-29 12:24 被阅读0次

    一、:nth-of-type()

    nth-of-type()定义和用法:
    :nth-of-type(m)选择器匹配属于父元素的特定类型的第m个子元素的每个元素。
    m 可以是一个数字、关键字或者是公式。

    1.1、当m为数字时

    有如下代码

    <div class="nth">
        <h2>111111</h2>
        <p>第一段落</p>
        <h2>222222</h2>
        <p>第二段落</p>
        <h2>333333</h2>
        <p>第三段落</p>
    </div>
    
    css
    .nth p:nth-of-type(3){
        background-color: red;
    }
    
    .nth h2:nth-of-type(2){
        background-color: aqua;
    }
    
    图片.png

    这里我们可以看到一个类名为nth的盒子中有3个h2标签3个p标签;在样式表中,我们首先可以通过nth找到类名(class)为nth的元素,再通过标签ph2找出当前类中所有的p标签和h2标签;再根据nth h2:nth-of-type(m)中的m确定到标签的具体位置;从上往下的顺序排列。

    1.2、当m为关键字

    oddeven是可用于匹配下标是奇数或偶数的子元素关键词(默认的第一个为1)。
    当样式表中改为

    .nth p:nth-of-type(odd){
        background-color: red;
    }
    
    .nth h2:nth-of-type(even){
        background-color: aqua;
    }
    
    图片.png

    意为下标为奇数的p标签背景颜色为红色,下标为偶数的h2标签背景颜色为青色。

    1.3、当m为公式

    使用公式(an + b),其中a表示周期长度,n是计数器(从0开始),b是偏移值。

    .nth p:nth-of-type(2n + 1){
        background-color: red;
    }
    
    .nth h2:nth-of-type(2n){
        background-color: aqua;
    }
    
    图片.png

    意为下标为奇数的p标签背景颜色为红色,下标为偶数的h2标签背景颜色为青色。

    二、:nth-child()

    :nth-child()选择器匹配属于其父类的第N个元素,不论元素的类型,N可以是数字、关键词或者公式,其关键词和公式同上。

    <div class="nth">
        <h2>111111</h2>
        <p>第一段落</p>
        <h2>222222</h2>
        <p>第二段落</p>
        <h2>333333</h2>
        <p>第三段落</p>
    </div>
    
    css文件
    .nth p:nth-child(2){
        background-color: aquamarine;
    }
    

    运行结果如下


    图片.png

    当css文件改为如下所示时

    .nth p:nth-child(3){
        background-color: aquamarine;
    }
    

    运行结果如下

    图片.png
    如上面两个运行结果所示:p:nth-child(n)所指的是p元素所在父元素下的第n个元素(从上至下);当第n个元素正好是p元素时,背景设置才会生效。

    相关文章

      网友评论

          本文标题:nth-of-type()和nth-child()的区别

          本文链接:https://www.haomeiwen.com/subject/hlrlyrtx.html