css选择器(1)

css选择器

css选择器有5个大类:

  1. 基本选择器
  2. 复合选择器
  3. 伪类选择器
  4. 伪元素选择器
  5. 属性选择器

接下来具体介绍各个选择器:

一、基本选择器

1、 通用选择器

通用选择器能够匹配所有的元素

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <style>
            *{
                color: green;
            }
        </style>
    </head>
    <body>
        <h1>万物皆虚,万事皆允</h1>
        <p>万物皆虚,万事皆允</p>
        <p>万物皆虚,万事皆允</p>
    </body>
</html>

2、元素选择器

元素选择器就是以某个html元素作为选择器

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <style>
            h1{
                text-align: center;
            }
        </style>
    </head>
    <body>
        <h1>万物皆虚,万事皆允</h1>
        <p>万物皆虚,万事皆允</p>
        <p>万物皆虚,万事皆允</p>
    </body>
</html>

3、类选择器

类选择器采用html5的全局属性class,用它来匹配指定的元素

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <style>
            .a{
                color: red;
            }
            .b{
                color: blue;
            }
        </style>
    </head>
    <body>
        <h1>万物皆虚,万事皆允</h1>
        <p class="a">万物皆虚,万事皆允</p>
        <p class="b">万物皆虚,万事皆允</p>
    </body>
</html>

4、id选择器

id选择器是使用html元素的id属性来进行定位的

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <style>
            #a{
                color: green;
            }
            #b{
                color: pink;
            }
        </style>
    </head>
    <body>
        <h1>万物皆虚,万事皆允</h1>
        <p id="a">万物皆虚,万事皆允</p>
        <p id="b">万物皆虚,万事皆允</p>
    </body>
</html>

二、复合选择器

符合选择器是由两个或多个基础选择器通过不同的方式进行组合,来达到更精确的定位。

1、交集选择器

交集选择器由两个选择器直接连接构成,第一个选择器必须是元素选择器,第二个选择器必须是类选择器或id选择器

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <style>
            p#b{
                color:yellow;
            }
            p.a{
                color:pink;
            }
        </style>
    </head>
    <body>
        <h1>万物皆虚,万事皆允</h1>
        <p class="a">万物皆虚,万事皆允</p>
        <p id="b">万物皆虚,万事皆允</p>
        <p id="b">万物皆虚,万事皆允</p>
    </body>
</html>

2、并集选择器

由两个或两个以上任意选择器构成,所设置的样式对参与的每个选择器都有效

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <style>
            h1,p{
                color:green;
            }
        </style>
    </head>
    <body>
        <h1>万物皆虚,万事皆允</h1>
        <p class="a">万物皆虚,万事皆允</p>
        <p id="b">万物皆虚,万事皆允</p>
        <p id="b">万物皆虚,万事皆允</p>
    </body>
</html>

3、后代选择器

用于选择包含在指定选择器匹配的元素中的后代元素,后代选择器使用空格进行分隔

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <style>
            body  p{
                color:red;
            }
        </style>
    </head>
    <body>
        <p>
            hahaha
            <div>
                nimei
                <p>
                    3
                </p>
            </div>
        </p>
    </body>
</html>

4、子元素选择器

子元素选择器和后代选择器很像,但只选择匹配元素中的直接子元素

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <style>
            body > p{
                color:red;
            }
        </style>
    </head>
    <body>
        <p>
            hahaha
            <div>
                nimei
                <p>
                    3
                </p>
            </div>
        </p>
    </body>
</html>

5、相邻兄弟选择器

如果需要选择紧接在某个元素后面的元素,而且两者具有共同的父元素,就可以使用相邻兄弟选择器。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <style>
            .a+.b{
                color:red;
            }
        </style>
    </head>
    <body>
        <p class="a">第一行</p>
        <p class="b">第二行</p>
        <p class="c">第三行</p>
        <p class="d">第四行</p>
    </body>
</html>

6、通用兄弟选择器

通用兄弟选择器比相邻兄弟选择器的匹配范围更广一些,通用兄弟选择器匹配的元素无需挨着,只需要有共同父亲即可,也就是在同一层级。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <style>
            .a ~ p{
                color:red;
            }
        </style>
    </head>
    <body>
        <p class="a">第一行</p>
        <p class="b">第二行</p>
        <p class="c">第三行</p>
        <p class="d">第四行</p>
    </body>
</html>

三、伪元素选择器

1、::first-line选择器

用于匹配文本块的第一行内容,并且仅对块级元素的内的第一行内容有效

tip:输入lorem可以填充乱数假文

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <style>
            ::first-line{
                color:red;
            }
        </style>
    </head>
    <body>
        <div>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Tempore, aut, officiis totam voluptatum, odit reprehenderit corrupti ipsam nesciunt veniam ut eos omnis necessitatibus inventore corporis! Dolorem exercitationem officiis dolor soluta!</div>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ratione labore quibusdam, deleniti, nobis repellendus doloremque voluptatum velit, repudiandae dolorem inventore qui. Sit vero veritatis deleniti beatae ea, quibusdam reprehenderit eligendi?</p>

    </body>
</html>

如果想要让::first-line仅对一个元素起效,就要在冒号前加上这个元素

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <style>
            p::first-line{
                color:red;
            }
        </style>
    </head>
    <body>
        <div>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Tempore, aut, officiis totam voluptatum, odit reprehenderit corrupti ipsam nesciunt veniam ut eos omnis necessitatibus inventore corporis! Dolorem exercitationem officiis dolor soluta!</div>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ratione labore quibusdam, deleniti, nobis repellendus doloremque voluptatum velit, repudiandae dolorem inventore qui. Sit vero veritatis deleniti beatae ea, quibusdam reprehenderit eligendi?</p>

    </body>
</html>

2、::first-leter选择器

用来选中文本块的第一个字符

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <style>
            ::first-letter{
                color:red;
            }
        </style>
    </head>
    <body>
        <div>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Tempore, aut, officiis totam voluptatum, odit reprehenderit corrupti ipsam nesciunt veniam ut eos omnis necessitatibus inventore corporis! Dolorem exercitationem officiis dolor soluta!</div>
        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ratione labore quibusdam, deleniti, nobis repellendus doloremque voluptatum velit, repudiandae dolorem inventore qui. Sit vero veritatis deleniti beatae ea, quibusdam reprehenderit eligendi?</p>

    </body>
</html>

同样,在冒号前加入特定标签,会让::first-letter的效果仅针对该标签。

3、::before和::after

将content属性的值插入到指定区域中

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <style>
            p::before{
                content: "大老师";
            }
            p::before{
                content: url(img/a.png);
            }
            p::after{
                content: "自爆"
            }
        </style>
    </head>
    <body>
        <p>的技能是</p>
    </body>
</html>

4、selection选择器

用于匹配用户选中的部分文本

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <style>
           ::selection{
               color:red;
               background-color: black;
           }
        </style>
    </head>
    <body>
        <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Molestiae id soluta nemo ad et. Quibusdam, necessitatibus harum? Corporis inventore iure incidunt ea illo tempora nobis ratione consectetur voluptates vel! Quisquam.</p>
    </body>
</html>

原文地址:https://www.cnblogs.com/fate-/p/14429271.html