css3第四篇,选择器三(伪类选择器一)

伪类选择器一

语法 :。指定选择器特殊情况下的属性以及属性值

结构伪类选择器

1.:nth-child:根据定义的标签顺序,来给指定的标签添加样式。先找到符合顺序的标签,再匹配标签是否符合设定的类型。

选择器作用
:first-child所有标签中的第一个,并且要符合设定的标签类型
:last-child所有标签中的最后一个,并且要符合设定的标签类型
:nth-child()符合指定顺序的标签.()当中可写内容:一个数值,表示指定的顺序;英文单词odd奇数标签even偶数标签.公式:a*n +/- b,公式没有固定的写法,完全根据需求而定,a,b是根据需求自行设定的数字,n是css3系统规定的,从0开始的整数,将n赋值,是从0开始的整数,再根据公式计算出数值,按照数值给指定顺序的符合设定的标签添加样式效果
nth-last-child()与nth-child()的所有语法都相同,只是计算顺序,是从最后一位开始,例如:nth-last-child(3)

举例1: 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    .ul1>li:first-child {
        color: blue;
    }

    .ul1>li:last-child {
        color: green;
    }

    .ul1>li:nth-child(4) {
        color: red;
    }
    </style>
</head>

<body>
    <ul class="ul1">
        <li>北京1</li>
        <li>北京2</li>
        <li>北京3</li>
        <li>北京4</li>
        <li>北京5</li>
        <li>北京6</li>
        <li>北京7</li>
        <li>北京8</li>
    </ul>
</body>

</html>

举例2:请看注释。 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    /* 一个标签是a标签,与设定的类型符合,无法加载样式效果 */

    .div1>span:first-child {
        color: red;
    }
    /* 第一个标签是a标签,与设定类型一致,可以加载样式效果 */

    .div1>a:first-child {
        color: green;
    }
    /* 同理,最后一个标签是p标签,与设定类型不一致,没法加载样式效果 */

    .div1>h6:last-child {
        color: blue;
    }
    /* 最后一个标签是p标签,与设定类型一致,可以加载样式效果 */

    .div1>p:last-child {
        color: blue;
    }
    /* 第五个标签,是h1标签,与设定类型一直,可以加载样式效果 */

    .div1>h1:nth-child(5) {
        color: yellow;
    }
    </style>
</head>

<body>
    <div class="div1">
        <a href="#">百度1</a>
        <a href="#">百度2</a>
        <span>广州1</span>
        <span>广州2</span>
        <h1>重庆1</h1>
        <h2>重庆2</h2>
        <h3>重庆3</h3>
        <h4>重庆4</h4>
        <h5>重庆5</h5>
        <h6>重庆6</h6>
        <p>武汉</p>
    </div>
</body>

</html>

举例3: 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    /* 按照设定的数字作为顺序,查找位置,再看该位置上的标签,是否符合类型设定 */
    /*  .ul1>li:nth-child(2) { color: red; } */
    /* 所有奇数标签,并且要符合类型设定,加载css样式 */
    /*  .ul1>li:nth-child(odd) { color: blue; } */
    /* 所有的偶数标签,并且要符合类型设定,可以加载css样式效果 */
    /*     .ul1>li:nth-child(even) {
        color: green;
    } */
    /* n是从0开始的数值,按照公式计算出相应的结果,结果就是写入的数值,就是标签的顺序,再看该顺序上的标签是否符合设定类型 */
    /* 需求:3,6,9,12...标签改变颜色 */
    /*  .ul1>li:nth-child(3n) { color: pink; } */
    /*     n是从0开始的数值,2n+1,的计算结果 1,3,5,7,9.... 最终效果为奇数标签添加效果 */
    /*  .ul1>li:nth-child(2n+1) { color: orange; } */
    /*     n是从0开始的数值,2n-1,的计算结果 -1,1,3,5,7,9.... 没有没有-1的标签顺序,没有标签会添加-1的样式效果,最终效果为奇数标签添加效果 */
    /*  .ul1>li:nth-child(2n-1) { color: orange; } */
    /* 设定奇数标签,并且是span的标签添加样式效果,第三个标签是a标签,符合类型设定,不会添加样式效果 */

    .div2>span:nth-child(odd) {
        color: yellow;
    }
    </style>
</head>

<body>
    <ul class="ul1">
        <li>北京1</li>
        <li>北京2</li>
        <li>北京3</li>
        <li>北京4</li>
        <li>北京5</li>
        <li>北京6</li>
        <li>北京7</li>
        <li>北京8</li>
        <li>北京9</li>
        <li>北京10</li>
        <li>北京11</li>
        <li>北京12</li>
        <li>北京13</li>
        <li>北京14</li>
        <li>北京15</li>
        <li>北京16</li>
    </ul>
    <div class="div2">
        <span>北京1</span>
        <span>北京2</span>
        <a href="#">上海</a>
        <span>北京3</span>
        <span>北京4</span>
        <span>北京5</span>
        <span>北京6</span>
        <span>北京7</span>
        <span>北京8</span>
    </div>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
</body>

</html>

 举例4:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    /*     所有标签中正数第二个标签,并且要求标签类型为li标签 */

    .ul1>li:nth-child(2) {
        color: red;
    }
    /*     所有标签中倒数第二个标签,并且要求标签类型为li标签 */

    .ul1>li:nth-last-child(2) {
        color: blue;
    }
    </style>
</head>

<body>
    <ul class="ul1">
        <li>北京1</li>
        <li>北京2</li>
        <li>北京3</li>
        <li>北京4</li>
        <li>北京5</li>
        <li>北京6</li>
        <li>北京7</li>
        <li>北京8</li>
        <li>北京9</li>
        <li>北京10</li>
        <li>北京11</li>
        <li>北京12</li>
        <li>北京13</li>
    </ul>
</body>

</html>

举例5: 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    /*  .div1>div:nth-child(1)
    .div1选择器标签中,子级第一个标签,该标签还必须是div */
    /*  .div1>div:nth-child(1)>span:nth-child(1) .div1选择器标签中,子级第一个标签,该标签还必须是div,再找子级标签,找第一个标签,标签还必须是span */

    .div1>div:nth-child(1)>span:nth-child(1) {
        color: green;
        font-size: 20px;
    }

    .div1>div:nth-child(1)>span:nth-child(2) {
        color: red;
        font-size: 20px;
    }

    .div1>div:nth-child(1)>span:nth-child(3) {
        color: gray;
        font-size: 10px;
    }
    /* 	.div1>div:nth-child(2)
	.div1选择器标签中,子级第二个标签,该标签还必须是div  */
    /*  .div1>div:nth-child(2)>ul>li:nth-child(even) .div1选择器标签中,子级第二个标签,该标签还必须是div,子级的ul,ul中所有偶数标签,并且类型必须是li */

    .div1>div:nth-child(2)>ul>li:nth-child(even) {
        background: green;
    }
    </style>
</head>

<body>
    <div class="div1">
        <div>
            <span>你所在的地区</span>
            <span>*</span>
            <span>(必填,单选)</span>
        </div>
    </div>
    <div class="div1">
        <div>
            <span>你的性别</span>
            <span>*</span>
            <span>(必填,单选)</span>
        </div>
    </div>
    <div class="div1">
        <div>
            <span>你的年龄</span>
            <span>*</span>
            <span>(必填,单选)</span>
        </div>
        <div>
            <ul>
                <li>
                    <input type="radio" name="age">18岁以下
                </li>
                <li>
                    <input type="radio" name="age">18岁~25岁
                </li>
                <li>
                    <input type="radio" name="age">26岁~34岁
                </li>
                <li>
                    <input type="radio" name="age">35岁~44岁
                </li>
                <li>
                    <input type="radio" name="age">44岁以上
                </li>
            </ul>
        </div>
    </div>
</body>

</html>

 2:nth-of-type.先找到所有符合类型的标签,再按照顺序给指定位置的标签添加样式

选择器说明
:first-of-type所有符合设定类型的标签中的第一个
:last-of-type所有符合设定类型的标签中的最后一个
:nth-of-type()符合指定顺序的标签,()当中可写内容:一个数值表示指定的顺序,英文单词odd奇数标签、even偶数标签.公式a*n +/- b公式没有固定的写法,完全根据需求而定a,b是根据需求自行设定的数字n是css3系统规定的,从0开始的整数将n赋值,是从0开始的整数,再根据公式计算出数值,按照数值给指定顺序的符合设定的标签添加样式效果
nth-last-of-type()与nth-of-type()的所有语法都相同,只是计算顺序,是从最后一位开始,例如:nth-last-of-type(3),所有符合设定类型的标签中的倒数第三个标签
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    /* child 先找第一个标签,再要求符合设定类型 */

    .div1>strong:first-child {
        color: red;
    }
    /* 先找到所有符合类型的标签,再按照设定的顺序给标签添加样式 */


    /* first-of-type,所有的strong中的第一个strong标签 */
    /*  .div1>strong:first-of-type { color: yellow; } */

    /*  last-of-type,所有的strong中的最后一个strong标签 */
    /*  .div1>strong:last-of-type {
        color: blue;
    } */


    /* nth-of-type(3)找到所有标签中符合设定顺序的标签,添加样式 */
    /*  .div1>strong:nth-of-type(3) {
        color: pink;
    } */
    /*  .div1>strong:nth-of-type(even) { color: orange; } */

    /*nth-last-of-type 找到符合顺序的的标签,是从所有符合类型的标签中倒数 */
    /* .div1>strong:nth-last-of-type(2) { color: green; } */
    </style>
</head>

<body>
    <div class="div1">
        <a href="#">新浪</a>
        <a href="#">搜狐</a>
        <strong>北京</strong>
        <a href="#">搜狐</a>
        <strong>上海</strong>
        <a href="#">搜狐</a>
        <strong>重庆</strong>
        <a href="#">搜狐</a>
        <strong>天津</strong>
        <strong>广州</strong>
        <em>武汉</em>
        <em>长沙</em>
    </div>
</body>

</html>

 总结:child先数数,先找顺序,再看当前位置标签是否符合设定标签类型;of-type先找到所有的符合类型的标签,不符合类型的标签不参与,再找顺序符合设定顺序的标签.  

 

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值