CSS选择器
选择器简介
「1.1作用」
选择器(选择符)就是根据不同需求把不同的标签选出来,这就是选择器的作用。简单来说,就是选择标签用的。 CSS做了两件事:
- 找到标签(选对人)
- 设置这些标签的样式(做对事)
「1.2分类」
在CSS中,可以根据选择器类型把选择器分为基础选择器和复合选择器。
- 基础选择器是由单个选择器组成的
- 基础选择器又包括:标签选择器、类选择器、id选择器、通配符选择器
复合选择器是建立在基础选择器之上,对基础选择器进行组合形成的。
- 复合选择器可以更精准,更高效的选择目标元素(标签)
- 复合选择器是有两个或多个基础选择器,通过不同的方式组合而成的
- 常用的复合选择器包括:后代选择器,子选择器,并集选择器,伪类选择器等
基础选择器
「2.1标签选择器」
标签选择器(元素选择器)是指用HTML标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的CSS样式。
- 作用: 标签选择器可以把某一类标签全部选择出来,比如所有的div标签和所有的span标签。
- 优点: 能快速为页面中同类型的标签统一设置样式。
- 缺点: 不能设计差异化样式,只能选择全部的当前标签。
1 | 标签名 { 属性1:属性值1; |
「2.2类选择器」
如果想要差异化选择不同的标签,单独选一个或者某几个标签,可以使用类选择器。
类选择器在HTML中以class属性表示,在CSS中,类选择器以一个点“ . ”号显示。
注意
- ①类选择器使用 .(英文点号)进行标识,后面紧跟类名(自定义,我们自己命名的)。
- ②可以理解为给这个标签起了一个名字来表示。
- ③长名称或词组可以使用中横线来为选择器命名。
- ④不要使用纯数字、中文等命名,尽量使用英文字母来表示。
- ⑤命名要有意义,尽量使别人一眼就知道这个类名的目的。
1 | .类名1 { |
1 | <p class="类名1 类名2"> 样例 </p> |
- 各个类名中间用空格隔开
- 简单理解:就是给某个标签添加了多个类,或者这个标签有多个名字
- 这个标签就可以分别具有这些类名的样式
- 从而节省css代码,统一修改也非常方便
- 多个类名选择器在后期布局比较复杂的情况下,还是较多使用的
「2.3id选择器」
id选择器可以为标有特定id的HTML元素指定特定的样式。
HTML元素以id属性来设置id选择器,CSS中id选择器以“ # ”来定义。
- 注意:id属性只能在每个HTML文档中出现一次
- 口诀:样式#定义,结构id调用,只能调用一次,别人切勿使用
1 | #id名 { 属性1:属性值1; |
1 | <p id="id名">样例</p> |
id选择器和类选择器的区别
- 类选择器(class)好比人的名字,一个人可以有多个名字,同时一个名字也可以被多个人使用。
- id选择器好比人的身份证号码β、全中国是唯一的,不得重复。
- id选择器和类选择器最大的不同在于使用次数上。
- 类选择器在修改样式中用的最多,id选择器一般用于页面唯一性的元素上,经常和 JavaScript 搭配使用。
「2.4通配符选择器」
在CSS中,通配符选择器使用*定义,它表示选取页面中所有元素(标签)。
- 通配符选择器不需要调用,自动就给所有的元素使用样式
- 特殊情况才使用,后面讲解使用
注意:会匹配页面所有的元素,降低页面响应速度,不建议随便使用
1 | * { 属性1:属性值1; |
例如下面代码,使用通配符选择器定义CSS样式,清除所有HTML标记的默认边距。
1 | * { |
2.5基础选择器总结
| 标签选择器 | 作用 | 特点 | 使用情况 | 用法 |
|---|---|---|---|---|
| 标签选择器 | 可以选出所有相同的标签 | 不能差异化选择 | 较多 | p {color: red} |
| 类选择器 | 可以选出一个或多个标签 | 可以根据需求选择 | 最多 | .nav {color: red} |
| id选择器 | 一次只能选择一个标签 | id属性在每个html文档中只能出现一次 | 一般和js搭配 | #nav {color: red} |
| 通配符选择器 | 选择所有标签 | 选择过多,有部分不需要 | 特殊情况使用 | * {color: red} |
每个基础选择器都有使用场景,都需要掌握,如果是修改样式,类选择器是使用最多的
复合选择器
「3.1后代选择器」
后代选择器又称为包含选择器,可以选择父元素里面的子元素,其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔,当标签发生嵌套时,内层标签就成为外层标签的后代。
1 | 元素1 元素2 {属性:属性值; |
上述语法表示选择元素1里面的所有元素2(后代元素)
- 元素1和元素2中间用空格隔开
- 元素1是父级,元素2是子级,最终选择的是元素2
- 元素2可以是儿子,也可以是孙子等,只要是元素1 的后代即可
- 元素1和元素2可以是任意基础选择器

「3.2子选择器」
子元素选择器(子选择器)只能选择作为某元素的最近一级子元素,简单理解就是选亲儿子元素。
1 | 元素1>元素2 {样式声明 |
上述语法表示选择元素1里面的所有直接后代(子元素)元素2.
1 | div>p {样式声明} /*选择div里面所有最近一级p标签元素*/ |
- 元素1和元素2中间用大于号隔开
- 元素1是父级,元素2是子级,最终选择的是元素2
- 元素2必须是亲儿子,其孙子,重孙之类都不归他管,你也可以叫他亲儿子选择器
「3.3交集选择器」

其中第一个为标签选择器,第二个为class选择器,两个选择器之间不能有空格,如h3.special。
1 | 交集选择器是并且的意思,即...又...的意思 |
「3.4并集选择器」
并集选择器可以选择多组标签,同时为他们定义相同的样式,通常用于整体声明。
并集选择器是个选择器通过英文逗号“,”连接而成,任何形式的选择器都可以作为并集选择器的一部分。
1 | 元素1,元素2 {样式声明} |
上述语法表示选择元素1和元素2
1 | ul,div |
- 元素1和元素2中间用逗号隔开
- 逗号可以理解为和的意思
- 并集选择器通常用于集体声明
「3.5链接伪类选择器」
伪类选择器用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或选择第一个,第n个元素。
伪类选择器书写最大的特点是用冒号:表示,比如:hover,first-child.
因为伪类选择器很多,比如有链接伪类,结构伪类等,所以这里先给大家讲解常用的链接伪类选择器。
链接伪类,是利用交集选择器
1 | a:link /*选择所有未被访问的链接*/ |
写的时候,他们的顺序尽量不要颠倒,按照lvha的顺序。否则可能引起错误。
注意事项
- 为确保生效,请按照LVHA的顺序声明:link visited hover active
- 记忆法:love hate或者Lv包包hao
- 因为a链接在浏览器中具有默认样式,所以我们实际工作中都需要给链接单独指定样式
实际工作中,很少写全四个状态,一般写法如下:
1 | /* a是标签选择器 所有的链接 */ |
「3.6foucs伪类选择器」
foucs伪类选择器用于选取获得焦点的表单元素。
焦点就是光标,一般情况下类表单元素才能获取,因此这个选择器也主要针对表单元素来说。
1 | input:foucs { |
「3.7复合选择器总结」
| 选择器 | 作用 | 特征 | 使用情况 | 隔开符号及用法 |
|---|---|---|---|---|
| 后代选择器 | 用来选择后代元素 | 可以是子孙后代 | 较多 | 符号是空格.nav a |
| 子选择器 | 选择最近一级元素 | 只选亲儿子 | 较少 | 符号是大于.nav>a |
| 交集选择器 | 选择两个标签交集部分 | 既是 又是 | 较少 | 没有符号 p.one |
| 并集选择器 | 选择某些相同样式的元素 | 可以用于集体声明 | 较多 | 符号是逗号.nav,a |
| 链接伪类选择器 | 选择不同状态的链接 | 跟链接相关 | 较多 | 重点记住a{}和a:hover实际开发的写法 |
| foucs伪类选择器 | 选择获得光标的表单 | 跟表单相关 | 较少 | input:focus记住这个写法 |
团队约定
- 尽量少用通配符选择器
* - 尽量少用ID选择器
- 不使用无具体语义定义的标签选择器
1 | /* 推荐 */ |





