CSS高级选择器

CSS高级选择器

1.层次选择器

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>


    <style>
        p,ul{
            border: 1px solid red; /*边框*/
        }

        /*后代选择器
        需求 : 获取body下面的所有p标签
        使用空格隔开

        body p{
            background-color: green;
        }
*/
        /*子选择器
        需求 : 只获得body下面的第一层元素

        body>p{
            background: slateblue;
        }

*/
        /*相邻兄弟选择器  , 向下 ...
        前提 : 定位到一个元素 E
        需求 : 获取指定元素的相邻兄弟元素

        #a+p{
            background: yellow;
        }

        */

        /*兄弟选择器
        前提 : 定位到一个元素 E
        需求 : 想获取指定元素的所有(指定元素下面的)兄弟元素

        格式 :

        E ~ F {
        }
        表示 : 获取指定E元素的同级元素的F标签
        */
        .aaa~p{
            background: bisque;
        }


    </style>


</head>
<body>



<p class="aaa">1</p>
<p id="a">2</p>
<p>3</p>
<ul>
    <li>
        <p>4</p>
    </li>
    <li>
        <p>5</p>
    </li>
    <li>
        <p>6</p>
    </li>
</ul>
<p>3</p>


</body>
</html>

2.结构伪类选择器

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style>

        p,li{
            border: 1px solid red;
        }

        /*
        结构伪类选择器 :

        概念 :  伪元素和伪选择器 是CSS已经定义好的 ,我们拿来就可以用

        格式 :

        选择器 :伪元素{

        }

        伪元素 :
            :first-child -->父类的第一个子元素
            :last-child
            :
        ul li:first-child{
            background: yellow;
        }

        ul li:last-child{
            background: red;
        }

        /*需求:选择body下面的第二个元素
        E:nth-child(n) --> 需要找到E元素的父级元素 , 寻找父级元素的第n个子元素 ,
       判断他是不是E元素 , 如果不是,就不会被选择.
*/

        p:nth-child(2){
            background: blue;
        }


        /*请你选择body下面的第二个p元素
        E : nth-of-type(n)  --->找到E的父级元素 , 然后在他的父级元素中去找第n个E元素
        */
        p:nth-of-type(3){
            background: brown;
        }


    </style>



</head>
<body>

<h1>adsdas</h1>
<p>1</p>
<p>2</p>
<p>3</p>
<ul>
    <li>li1</li>
    <li>li2</li>
    <li>li3</li>
</ul>




</body>
</html>

3.属性选择器

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style>
        /*给基础代码添加样式*/
        .demo a{
            float: left; /*浮动*/
            display: block;
            height: 50px;
            width: 50px;
            border-radius: 10px;
            background: blue;
            color: white;
            text-align: center;
            line-height: 50px;
            text-decoration: none;
            margin: 5px;
        }


        /*属性选择器
        需要一个什么 : 属性


        a[id]{
            background: red;
        }


        a[id=name]{
            background: red;
        }


        a[href^="https"]{
            background: red;
        }


        a[href$="png"]{
            background: red;
        }

        a[class]{
            background: yellow;
        }

        a[href*="."]{
            background: yellow;
        }

*/


    </style>




</head>
<body>



<p class="demo">

    <a href="https://www.baidu.com" class="links" id="name">1</a>
    <a href=""  class="links">2</a>
    <a href="/1.png">3</a>
    <a href="/1.jpg"  class="links">4</a>
    <a href="/1.png" id="apple">5</a>
    <a href="https://blog.kuangstudy.com"  class="links">6</a>
    <a href="aaa">7</a>
    <a href="abc.doc"  class="links">8</a>
    <a href="abcd.doc" id="">9</a>

</p>







</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值