CSS选择器简单归纳说明

CSS选择器

1.选择器目录

1.1 元素选择器

  语法:E{…}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
             div
             {
                 background-color: blue;
             }
    </style>
</head>
<body>
    <div>你好,世界</div>
    <div id="app">helloworld</div>


</body>
</html>
1.2 属性选择器

  语法:E[attr=‘value’]{…}
  attr指如有id,name等属性,整句话意思是:匹配所有属性attr为value的E元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
             div[id='yyy']
             {
                 background-color: blue;
             }
    </style>
</head>
<body>
    <div>你好,世界</div>
    <div id="yyy">helloworld</div>


</body>
</html>

  它还有其它语法格式(像正则表达式语法):
  1.2 .1 E[attr~=‘value’]{…} :匹配所有包含attr属性,且attr属性的值以空格隔开的系列值,其中的某个值为value的E元素起作用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
             div[id~=yyy]{
                 background-color: blue;
             }
    </style>
</head>
<body>
    <div>你好,世界</div>
    <div id="xxx yyy zzz">helloworld</div>


</body>
</html>

  1.2 .2 E[attr|=‘value’]{…} :匹配所有包含attr属性,且attr属性的值以连字符分隔开的系列值,其中的第一个值为value的E元素起作用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
             div[id|='yyy']{
                 background-color: blue;
             }
    </style>
</head>
<body>
    <div>你好,世界</div>
    <div id="yyy-xxx-zzz">helloworld</div>


</body>
</html>

  1.2 .3 E[attr^=‘value’]{…} :匹配所有包含attr属性,且是以attr属性的value值开头的E元素起作用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
             div[id^=yyy]{
                 background-color: blue;
             }
    </style>
</head>
<body>
    <div>你好,世界</div>
    <div id="yyyAAAA">helloworld</div>


</body>
</html>

   1.2 .4 E[attr$=‘value’]{…} :匹配所有包含attr属性,且是以attr属性的value值结尾的E元素起作用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
             div[id$=yyy]{
                 background-color: blue;
             }
    </style>
</head>
<body>
    <div>你好,世界</div>
    <div id="AAAAyyy">helloworld</div>


</body>
</html>

   1.2 .5 E[attr*=‘value’]{…} :匹配所有包含attr属性,且attr属性的值包含value的E元素起作用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
             div[id*=yyy]
             {
                 background-color: blue;
             }
    </style>
</head>
<body>
    <div>你好,世界</div>
    <div id="AAAAyyyBBB">helloworld</div>


</body>
</html>
1.3 ID选择器

   #idValue{…} :匹配所有id属性值是idValue的E元素起作用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
             #app
             {
                 background-color: blue;
             }
    </style>
</head>
<body>
    <div>你好,世界</div>
    <div id="app">helloworld</div>


</body>
</html>
1.4 class选择器

   E.classValue{…} :匹配所有lclass
属性值是idValue的E元素起作用,E元素可以省略

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
             .appClass
             {
                 background-color: blue;
             }
             div.divClass
             {
                 background-color: blue;
             }
    </style>
</head>
<body>
    <div>你好,世界</div>
    <div class="appClass">helloworld1</div>
    <div class="divClass">helloworld2</div>
    <span class="divClass">helloworld3</span>


</body>
</html>
1.5 包含选择器

   Selector1 Selector2{…} 指定的class样式对处在左侧选择器对应的元素内部的且匹配Selector2的子元素里面的所有后代元素都起作用。包含选择器也叫后代选择器。也即是右边的Selector2选择器对应的元素必须处于左边的Selector1选择器对应的元素内部,则指定的class样式才对Selector2的子元素里面的所有后代元素起作用。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
             div .divClass
             {
                 background-color: blue;
             }
    </style>
</head>
<body>
    <div>你好,世界</div>

    <div>
        <div class="divClass">div子代
        </div>
    </div>
    <div>

        <span>
            <div class="divClass">div孙代                 
            </div>
        </span>
     
    </div>
    <div>
        <span>
            <sapn>
                <div class="divClass">div曾孙                 
                </div>
            </sapn>
        </span>
     
    </div>
</body>
</html>

1.6 子选择器

   Selector1 >Selector2{…} 指定的class样式对处在左侧选择器对应的元素内部的且匹配Selector2的子元素起作用,不包含其子元素。也即是右边的Selector2选择器对应的元素必须处于左边的Selector1选择器对应的元素内部,则指定的class样式才只对Selector2的元素起作用。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
             div > .divClass
             {
                 background-color: blue;
             }
    </style>
</head>
<body>
    <div>你好,世界</div>

    <div>
        <div class="divClass">div子代
        </div>
    </div>
    <div>

        <span>
            <div class="divClass">div孙代                 
            </div>
        </span>
     
    </div>
    <div>
        <span>
            <sapn>
                <div class="divClass">div曾孙                 
                </div>
            </sapn>
        </span>
     
    </div>
</body>
</html>
1.7 兄弟选择器

   1.7.1 Selector1 + Selector2{…} 指定的class样式,需要满足对左侧选择器对应的元素且是其相邻的,并且匹配右侧Selector2的元素,还要满足二者有相同的父元素,才会对左侧选择器对应的元素且匹配Selector2相邻元素起作用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
             .divClass + div
             {
                 background-color: blue;
             }
    </style>
</head>
<body>
    <div class="divClass">你好,世界</div>
    <div >相邻兄弟</div>
    <div >隔壁兄弟</div>
</body>
</html>

   1.7.2 Selector1 ~ Selector2{…} 指定的class样式,需要满足对左侧选择器对应的元素且是其后面的所有兄弟结点,并且都匹配右侧Selector2的元素,还要满足二者有相同的父元素,才会对左侧选择器对应的元素后面的所有兄弟结点且匹配Selector2的元素起作用


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
             .divClass ~ div
             {
                 background-color: blue;
             }
    </style>
</head>
<body>
    <div class="divClass">你好,世界</div>
    <div >相邻兄弟</div>
    <div >隔壁兄弟1</div>
    <div >隔壁兄弟2</div>
</body>
</html>

1.8 选择器组合

   Selector1,Selector2…{…}指定的class样式多个选择器对应的元素起作用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
             .divClass,div,#app
             {
                 background-color: blue;
             }
    </style>
</head>
<body>
    <div class="divClass">你好,世界1</div>
    <div >你好,世界2</div>
    <div id="app">你好,世界3</div>
    <p>你好,世界4</p>
</body>
</html>
1.9 伪元素选择器

   1.9.1 :first-letter: 该选择器对应的CSS样式对指定元素内的第一个字符起作用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
            :first-letter{
                color: blue;
            }
    </style>
</head>
<body>
    <div class="divClass">你好,世界</div>
</body>
</html>

   1.9.2 :first-line: 该选择器对应的CSS样式对指定元素内的第一行内容起作用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
            :first-line{
                color: blue;
            }
    </style>
</head>
<body>
    <div class="divClass">你好,世界</div>
</body>
</html>

   1.9.3 :before:该选择器与内容元素结合起来一起使用,用 于在指定对象内部的前端插入内容。 :after:该选择器与内容元素结合起来一起使用,用于在指定对象内部的尾部插入内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
            .divClass:before{
                content:'你好,';
            }
            .divClass:after{
                content:url(小可爱以泽.JPG);
            }
    </style>
</head>
<body>
    <div class="divClass">世界</div>
</body>
</html>

   1.9.4 content:该属性值可以是字符串、url(url)、attr(alt)、counter(name)、counter(name,list-style-type)、open-quote、close-quote等格式。该属性用于向指定元素之前或之后插入插入指定内容

     1.9.4.1 counter属性值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
    
            .divClass{
                counter-increment: mycounter;
            }
            /* counter-increment是一个函数,属性设置某个选取器每次出现的计数器增量。默认增量是 1。 */
            .divClass:before{
                content:counter(mycounter) '.';
            }
    </style>
</head>
<body>
    <div class="divClass">java</div>
    <div class="divClass">css</div>
    <div class="divClass">js</div>
</body>
</html>
2.0 新增的伪元素选择器

   2.0.1 结构性伪类元素:
    2.0.1.1 Selector:root 匹配文档根元素。在html文档中,根元素永远是<html…/>元素。
    2.0.1.2 Selector:first-child 匹配符合Selector选择器,而且必须是其父元素的第一个子节点元素
    2.0.1.3 Selector:last-child 匹配符合Selector选择器,而且必须是其父元素的最后一个子节点元素
    2.0.1.4 Selector:nth-child(n) 匹配符合Selector选择器,而且必须是其父元素的第n个元素
    2.0.1.5 Selector:nth-last-child(n) 匹配符合Selector选择器,而且必须是其父元素的倒数第n个元素
    2.0.1.6 Selector:only-child 匹配符合Selector选择器,而且必须是其父元素的唯一一个子元素
    2.0.1.7 Selector:first-of-type 匹配符合Selector选择器,而且是与它同类型、同级兄弟元素的第一个元素
    2.0.1.8 Selector:last-of-type 匹配符合Selector选择器,而且是与它同类型、同级兄弟元素的最后一个元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <style type="text/css">
             :root{
                 background-color: blue;
             }
             li:first-child
             {
                background-color: red;
             }
             li:last-child
             {
                background-color: green;
             }
             li:nth-child(2)
             {
                background-color: coral;
             }
             li:nth-last-child(2)
             {
                background-color: yellow;
             }
             li:first-of-type{
                background-color: white;
             }
             li:last-of-type{
                background-color: black;
             }
    </style>
    <div>
        你好,世界!
    </div>
    <div>
        <ul>
            <li>
                 11111
            </li>
            <li>
                2222
            </li>
            <li>
                333333
            </li>
            <li>
               4444444444
            </li>
            <li>
                5555555
             </li>
        </ul>
    </div>
</body>
</html>

   2.0.2 UI元素状态伪类元素:

    2.0.2.1 Selector🔗 匹配Selector选择器且未被访问前的元素(通常只能是超链接)
    2.0.2.2 Selector:visited: 匹配Selector选择器且已被访问过的元素(通常只能是超链接)
    2.0.2.3 Selector:active: 匹配Selector选择器且处于被用户激活(在鼠标点击与释放之间)状态的元素
    2.0.2.4 Selector:hover: 匹配Selector选择器且处于鼠标悬停状态的元素
    2.0.2.5 Selector:focus: 匹配Selector选择器且已得到焦点的元素
    2.0.2.6 Selector:enabled: 匹配Selector选择器且当前处于可用的元素
    2.0.2.7Selector:disabled: 匹配Selector选择器且当前处于不可用的状态元素
    2.0.2.8 Selector:checked: 匹配Selector选择器且当前处于选中状态的元素
    2.0.2.9 Selector:default: 匹配Selector选择器且页面打开时处于选中状态
    2.0.2.10 Selector:read-only: 匹配Selector选择器且处于只读状态
    2.0.2.11 Selector:read-write: 匹配Selector选择器且处于只写状态
    2.0.2.12 Selector:selection: 匹配Selector选择器元素中且当前被选中的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值