nth类选择器 学习笔记

先看看类似的first-child伪类选择器;

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            /*同层的比较寻找的是第一个该层子元素(其他元素会干扰他)*/
            .box p:first-child {
                color: red;
            }
            .box p:last-child{
                color: green;
            }
        </style>

    </head>
    <body>
        <div class="box">
            <a href="###">链接</a>
            <p>p1</p>
            <p>p2</p>
            <div>
                <p>p3</p>
                <p>p3-1</p>
                <div>
                    <p>p3-1-1</p>
                </div>
            </div>
            <p>p4</p>
        </div>
    </body>
</html>

效果:
这里写图片描述
同层的比较寻找的是第一个该层子元素(其他元素会干扰他)如p1。

第二种:first-of-type类

            .box2 p:first-of-type{
                color: red;
            }
                    <div class="box2">
            <a href="###">链接</a>
            <p>p1</p>
            <p>p2</p>
            <div>
                <p>p3</p>
                <p>p3-1</p>
                <div>
                    <p>p3-1-1</p>
                </div>
            </div>
            <p>p4</p>
        </div>

效果:
这里写图片描述
现在p1也可以被找到了,同类型比较,其他元素不会干扰。

3:only类

            .box3 p:only-of-type{
                color: blue;
            }
            .box3 p:only-child{
                color: red;
            }

        <div class="box3">
            <p>p1</p>
            <div>
                <p>p2</p>
            </div>
            <div>
                <p>p3</p>
                <p>p4</p>
            </div>
        </div>

效果:
这里写图片描述

only-of-type用于找到只有一个p标签的,only-child用于找到只有一个孩子而且是p的

4.nth类选择器

            .box4 p:nth-child(4){
                color: red;;
            }

            .box4 p:nth-of-type(1){
                color: blue;
            }
        <div class="box4">
            <a href="">链接</a>
            <p>p1</p>
            <p>p2</p>
            <p>p3</p>
            <p>p4</p>
            <p>p5</p>
            <p>p6</p>
        </div>

效果:
这里写图片描述
nth-child就是找标签下第n个标签,nth-of-type是找同类中的底n个。括号的参数还有其他写法。

            .box5 ul li:nth-child(even){
                color: red;
            }

            .box5 ul li:nth-child(odd){
                color: blue;
            }
                    <div class="box5">
            <ul>
                <li>li1</li>
                <li>li2</li>
                <li>li3</li>
                <li>li4</li>
                <li>li5</li>
                <li>li6</li>
                <li>li7</li>
                <li>li8</li>
                <li>li9</li>
                <li>li10</li>
            </ul>
        </div>

效果:
这里写图片描述
序列是从1开始的odd是奇数even是偶数。

            .box6 li:nth-child(3n-1){
                color: pink;
            }
                    <div class="box6">
            <ul>
                <li>li1</li>
                <li>li2</li>
                <li>li3</li>
                <li>li4</li>
                <li>li5</li>
                <li>li6</li>
                <li>li7</li>
                <li>li8</li>
                <li>li9</li>
                <li>li10</li>
            </ul>
        </div>

效果:
这里写图片描述
这里可以选择出符合an+b数值的序列,注意n是从零开始的。通过这种写法可以实现对浮动后以类似表格的方法显示的某一列。
例如:

            .box6 ul{
                max-width: 600px;
                margin: 0;
                padding: 1%;
                overflow: hidden;
                border: 1px solid red;
            }

            .box6 li{
                display: block;
                width: 30%;
                float: left;
                border: 1px solid green;
                list-style-type: none;
                box-sizing: border-box;
            }
            @media only screen and (min-width: 500px) {
                .box6 li:nth-child(3n-1){
                    color: pink;
                    margin: 0 5%;
                }
            }
            @media only screen and (max-width: 500px) {
                .box6 li:nth-child(2n){
                    width: 40%;
                    margin-left: 5%;
                }
                .box6 li:nth-child(2n+1){
                    width: 40%;
                    margin-right: 5%;
                }
            }

效果:
这里写图片描述
这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值