CSS的选择器

### 一、选择器

#### 1、选择器的作用

就是根据不同的需求,把不同的标签选出来,即选择标签用的

#### 2、选择器的分类

选择器分为 基础选择器 和 复合选择器

基础选择器又包括:标签选择器、类选择器、id选择器、通配符选择器

复合选择器又包括:后代选择器、子选择器、并集选择器、伪类选择器

### 二、基础选择器

基础选择器是由单个选择器组成的

#### 1、标签选择器

标签选择器(元素选择器)是指使用HTML标签名称作为选择器,按标签名称分类

为页面中某一类标签指定统一的CSS样式

```CSS

标签名 {

属性1: 属性值1;

属性2: 属性值2;

属性3: 属性值3;

......

}

```

#### 2、类选择器

如果想要差异化的选择不同的标签,单独选择一个或多个·标签时,可以使用类选择器

在CSS中,类选择器以一个点” . “号来显示,后面紧跟类名(自定义,我们自己使用class命名的)

c

此结构需要使用class属性来调用

```HTML

<div class="red"> 红色 </div>

<li class="red"> 红色 </li>

<!-- 在HTML标签中添加class属性,在CSS中便可针对以添加class的标签来修改其样式-->

```

###### 多类名

可将一个标签指定多个类名,从而达到更多的选择目的,即一个标签有多个名字,这些类名都可以选出这个标签

###### 1.使用方式

```HTML

<div class="类名1 类名2 ..."> xyy </div>

```

每个类名之间使用空格分开

在布局时,多个标签具有同一样式时可使用

#### 3、id选择器

id选择器可以为标有特定id的HTML元素指定特定的样式

HTML元素以id属性来设置id选择器,CSS中id选择器以” # “来定义

```CSS

#id名 {

属性1: 属性值1;

属性2: 属性值2;

属性3: 属性值3;

......

}

```

注意:

id属性只能在每个HTML文档中出现一次!!!

###### 类选择器和id选择器的区别

1.类选择器(class)相当于一个人的名字,一个人可以有多个名字,一个名字也可以被多个人使用

2.id选择器相当于一个人的身份证号,是唯一的,不得重复的

3.其最大的区别在于使用次数上

4.类选择器在修改样式中使用最多,id选择器一般用于唯一性的元素上,常和JS搭配使用

#### 4、通配符选择器

在CSS中,通配符选择器使用” * “定义,他表示选取页面中的所有元素(标签)

```CSS

* {

属性1: 属性值1;

属性2: 属性值2;

属性3: 属性值3;

......

}

```

通配符选择器不需要调用,自动就给所有的元素使用样式

但一般在特殊情况下才使用

如:

```CSS

* {

    margin: 0;

    padding: 0;

    box-sizing: border-box;

}

```

#### 5、基础选择器总结

| 基础选择器 | 作用 | 特点 | 使用情况 | 使用 |

| ------ | ----------------- | -------------------- | ------- | ----- |

| 标签选择器 | 可以选出所有相同的标签,如< p> | 不能差异化选择 | 较多 | 标签名 |

| 类选择器 | 可以选出一个或多个标签 | 可以根据需求选择 | 非常多 | .类名 |

| id选择器 | 一次只能选择一个标签 | id属性只能在每个HTML文档中出现一次 | 一般和JS搭配 | # id名 |

| 通配符选择器 | 选择所有的标签 | 选择的太多,有部分不需要 | 特殊情况使用 | * |

### 三、复合选择器

复合选择器是建立在基础选择器之上,是对基础选择器进行组合而形成的

#### 1、后代选择器

后代选择器又称为包含选择器,可以选择父元素里的子元素

其写法就是把外层标签写在前面,内层标签写在后面,中间使用空格进行分隔

当标签发生嵌套时,内层标签就成为外层标签的后代

```CSS

元素1 元素2 ... {

声明样式 /* 选择 元素1 中的 元素2 中的 ... 进行样式的修改 */

}

```

#### 2、子元素选择器

子选择器只能选择作某元素的最近一级子元素

```CSS

元素1 > 元素2 {

样式声明

}

```

元素1是父级,元素2是子级,但最终选择的是元素2

但是元素2必须是 亲儿子 不可以是 孙子......

如:

```HTML

<head>

......

    <style>

    /* 选择.nav 里面所有最近一级的 a 标签元素 */

        .nav>a{

            color: red;

        }

    </style>

</head>

<body>

    <div class="nav">

        <a href="#"> 儿子 </a> <!-- 最近一级 -->

        <p>

            <a href="#"> 孙子 </a> <!-- 非最近一级 -->

        </p>

        <a href="#"> 儿子 </a> <!-- 最近一级 -->

    </div>

</body>

```

#### 3、并集选择器

并集选择器可以选择多组标签,同时为他们定义相同的样式,通常用于集体声明

通过“ , ”英文逗号连接而成,任何形式的选择器都可以成为并集选择器的一部分

```CSS

元素1 , 元素2 ,...{

样式声明 /* 选择 元素1 和 元素2 进行样式的修改 */

}

```

#### 4、伪类选择器

伪类选择器用于向某些选择器添加特殊的效果,比如:给链接添加特殊效果,或选择第1/n个元素

其书写的最大特点为使用冒号“ : ” 表示,如: :houvr 、 :first-child

##### 1、链接伪类选择器

| 链接伪类选择器 | 作用 |

| --------- | ------------------- |

| a:link | 选择所有未被访问的链接 |

| a:visited | 选择所有以被访问的链接 |

| a:hover | 选择鼠标指针位于其上的链接 |

| a:active | 选择活动链接(鼠标按下未弹起时的链接) |

```HTML

<head>

......

    <style>

    /* 未访问的链接 a: link   把还没有点击(访问)过的链接选出来 */

        a:link { color: #333; }

        /* 点击过的链接 a:visited   把已经点击(访问)过的链接选出来*/

        a:visited {  color: orange; }

        /* 鼠标经过的链接 a:hover   把当鼠标经过时的链接选出来*/

        a:hover {  color: skyblue; }

        /* 鼠标点击时的链接 a:active   当鼠标正在按下但未弹起时的链接*/

        a:active { color: green; }

    </style>

</head>

<body>

    <a href="https://www.bilibili.com"> 喜羊羊 </a>

</body>

```

注意事项:

1. 为了确保生效,请按照以上顺序(LVHA)进行声明::link - :visited - :hover - :active

2. 因为a链接在浏览器中具有默认样式,所以在实际工作中要给链接单独指定样式

在实际开发中的写法:

```CSS

/* a 是标签选择器 包含所有的链接 */

a {

color: gray;

}

/* :hover 是链接伪类选择器 表示鼠标经过 */

a:hover {

color: red; /* 当鼠标经过时,由原来的 灰色 变为 红色 */

text-decoration: nderline; /* 取消下划线 */

}

```

##### 2、focus伪类选择器

:focus 伪类选择器用于选取获得焦点的表单元素

焦点就是光标,一般情况 < input>类表单元才能获取,因此这个选择器主要针对于表单元素来说

```CSS

/* 把获得光标的input表单元素选取出来 */

input:focus{

background-color:yellow; /* 设置表单颜色 */

}

```

使用:

```HTML

<head>

......

    <style>

        input:focus{

            background-color: pink;

            color: red;

        }

    </style>

</head>

<body>

<!-- 当光标选中那个表单时,哪个表单就会按照所设置的样式而变化 -->

    <input type="text">

    <input type="text">

    <input type="text">

</body>

```

#### 5、复合选择器总结

| 选择器 | 作用 | 特征 | 使用情况 | 隔开符号及用法 |

| ----------- | ----------- | ------- | ---- | ------------------------- |

| 后代选择器 | 用来选择后代元素 | 可以是子孙后代 | 多 | 符号是空格 .nav a |

| 子选择器 | 选择最近一级元素 | 只能是亲儿子 | 少 | 符号是大于 .nav>p |

| 并集选择器 | 选择某些相同样式的元素 | 可用于集体声明 | 多 | 符号是逗号 .nav1 , .nav2 |

| 链接伪类选择器 | 选择不同状态的链接 | 和链接相关 | 多 | 记住 a{ } 和 a:hover 实际开发的写法 |

| :focus伪类选择器 | 选择获得光标的表单 | 和表单相关 | 少 | 记住 input:focus |


CSS的选择器
http://localhost:8090//archives/cssde-xuan-ze-qi
作者
yangfengjie
发布于
2025年10月08日
许可协议