选择器
1、标签选择器#
1.1、用标签名作为选择器#
- 选择页面中指定元素名称的所有元素设置统一的css样式

2、类选择器 .class#
2.1、元素标签.类名作为选择器#
- 每一个元素标签都可以添加
class属性,该属性的值即为类名 - 类名自己定义,不能为纯数字和汉字,见名知意
- 类名前+
.点号

| 注意 |
|---|
| 类选择器可以重复多次使用,可以多个标签的class属性都引用同一个类选择器,即它们就拥有相同的样式 |
2.2、多类名选择器#
class属性可以指定多个类名

| 注意 |
|---|
| (1)元素标签中class属性引入了多个类名,并在style样式中都声明了类选择器,此时该标签就拥有了两个样式表 |
| (2)重复的样式属性后面的会覆盖前面的 |
| (3)前后顺序是由style中类选择器声明的顺序而定的,和元素中class属性里的引用顺序无关 |
3、id选择器 #id#
3.1、元素标签的#id作为选择器#
- 每一个元素标签都可以添加
id属性,该属性的值即为id名 - id名自己定义,不能为纯数字和汉字,见名知意
- id名前要加上#号
- 语法:
#id { }

| 注意 |
|---|
#id选择器必须是唯一的(只能被一个标签的id属性引用与类选择器不同) |
4、通配符选择器 *#
- 所有的标签都会用通配符选择器里面的样式
- 语法格式
* { }
* { margin-left:20px; color:red; } - 语法格式
| 注意 |
|---|
*选择器实际上只会用来清除浏览器元素默认的内外边距等样式,一般不建议它用 |
5、复合选择器#
5.1、交集选择器#
由一个以上选择器写在一起组成(
选择器之间不能有空格)表示既是又是的关系
语法格式
选择器1选择器2 { }css代码 <!--p为标签选择器,.content为类选择器,两者之间没有空格--> p.content { margin-left:20px; color:red; }html代码 <p class="content">这里的字是红色的</p>说明 表示标签为 p且类名为content的标签样式设置为左外边距20px,文字颜色为红色
5.2、并集选择器#
- 用多个需要设置同一样式的选择器用逗号隔开组成
- 表示谁和谁还有谁一起共用的关系(
用逗号分隔开) - 语法格式
选择器1,选择器2,选择器3,选择器4 { }css代码 p,.content,h1,#userid{ color:red;}html代码 <p>这里的字是红色的</p> <h1>这里的字是红色的</h1> <div class="content">这里的字是红色的</div> <div id="userid">这里的字是红色的</div>说明 表示p元素标签、类名为content的元素标签,h1元素标签,id名为userid的选择器设置同一个样式文字颜色为红色
5.3、后代选择器#
选择器的对应的元素发生嵌套有子父级关系(直接或间接包含)
由多个选择器组成(
用空格隔开)语法格式
选择器1 选择器2 { }css代码 .content p {color:red; }html代码<div class="content"> <p>这里的字是红色的</p></div><div class="content"> <div id="userid"> <p>这里的字是红色的</p> </div></div>说明 html中div和p两个元素是嵌套关系(div中直接或间接包含p),该选择器表示的是div下的p标签把文字颜色属性设置为red
5.4、子元素选择器#
- 由两个选择器构成(
使用>号分隔) - 选择器2必须直接被选择器1包含
- 示例代码
选择器1>选择器2 { }css代码 #user>.content{color:red;}html代码 <div id="user" > <p class="content"></p> </div>
5.5、选择器示例#
| 名称 | 选择器示例 | 示例说明 |
|---|---|---|
.class类选择器 | .intro{ } | 选择所有class="intro"的元素 |
#id选择器 | #firstname{ } | 选择所有id="firstname"的元素 |
*选择器 | *{ } | 选择所有元素 |
标签选择器 | p{ } | 选择所有<p>标签 |
并集选择器 | div,p{ } | 选择所有<div>元素和<p>元素 |
后代选择器 | div p { } | 选择<div>元素内的所有<p>元素 |
子代选择器 | div>p { } | 选择所有父级是 <div> 元素的 <p> 元素 |
element+element兄弟选择器 | div+p { } | 选择所有紧接着<div>元素之后的<p>元素 |
| 属性选择器 ==CSS3== | 选择器 [ 属性名 ] { } | 某选择器的标签含有某属性时进行样式设置 |
| 属性选择器 ==CSS3== | 选择器 [ 属性名= 属性值 ] { } | 某选择器的标签含有某属性和某属性值时进行样式设置 |
| 属性选择器 ==CSS3== | 选择器 [ 属性名^= F ] { } | 某选择器的标签含有某属性和属性值以F开头时进行样式设置 |
| 属性选择器 ==CSS3== | 选择器 [ 属性名=$ F ] { } | 某选择器的标签含有某属性和属性值以F结尾时进行样式设置 |
| 属性选择器 ==CSS3== | 选择器 [ 属性名*= F ] { } | 某选择器的标签含有某属性和属性值包含F时进行样式设置 |
6、伪类选择器#
6.1、超链接伪类选择器#
| 名称 | 选择器示例 | 示例说明 |
|---|---|---|
| :link | a:link{ } | 选择所有 未访问链接 设置样式 |
| :visited | a:visited { } | 选择 已访问过的链接 设置样式 |
| :hover | a:hover{ } | 鼠标悬浮 在链接上的样式 |
| :active | a:active { } | 鼠标点击 链接时的样式 |

注意 |
|---|
:hover 其他元素也可以使用该伪类选择器 语法: 选择器:hover{ } |
:active 其他元素也可以使用该伪类选择器 语法: 选择器:active{ } |
![]() |
6.2、其他#
| 名称 | 选择器示例 | 示例说明 |
|---|---|---|
| :focus | input:focus{ } | 选择具有焦点的输入元素 |
| :before | p:before{ } | 在每个<p>元素之前插入内容使用 content 属性来指定要插入的内容 |
| :after | p:after { } | 在每个<p>元素之后插入内容使用 content 属性来指定要插入的内容 |
| :enabled ==CSS3== | input:enabled { } | 选择每一个已启用的输入元素 |
| :disabled ==CSS3== | input:disabled{ } | 选择每一个禁用的输入元素 |
| :checked ==CSS3== | input:checked { } | 选择每个选中的输入元素元素 |
| ::selection ==CSS3== | ::selection{ } | 匹配元素中被用户选中或处于高亮状态的部分 |
7、结构伪类选择器#
7.1、比较常用的结构伪类选择器#
| 名称 | 选择器示例 | 示例说明 |
|---|---|---|
| :first-child ==CSS3== | p:first-child { } | 指定只有当<p>元素是其父级的第一个子级的样式。 |
| :last-child ==CSS3== | p:last-child{ } | 选择每个p元素是其父级的最后一个子级。 |
| :nth-child(n) ==CSS3== | p:nth-child(2) { }1 | 选择每个p元素是其父级的第二个子元素 |
| :nth-last-child(n) ==CSS3== | p:nth-last-child(2){ }1 | 选择每个p元素的是其父级的第二个子元素,从最后一个子项计数 |
| :nth-of-type(n) ==CSS3== | p:nth-of-type(2){ }1 | 选择每个p元素是其父级的第二个p元素 |
| :nth-last-of-type(n) ==CSS3== | p:nth-last-of-type(2) { }1 | 选择每个p元素的是其父级的第二个p元素,从最后一个子项计数 |
| :not(selector) ==CSS3== | :not(选择器) | 选择每个并非指定的选择器元素的元素 |
8、CSS三大特性#
8.1、层叠覆盖性#
- 优先级相同时,后来居上,以最后的样式为准
- 优先级不同是,优先级高的覆盖优先级低的
| 注意 |
|---|
class属性引入多类名样式时,先后顺序和引入顺序无关和类选择器在<style>标签中的声明顺序有关 |
8.2、继承性#
子标签对父标签样式有一定的默认继承性
所有元素可继承:visibility和cursor
内联元素可继承:letter-spacing、word-spacing、white-space、line-height、color、font、 font-family、font-size、font-style、font-variant、font-weight、text- decoration、text-transform、direction
块状元素可继承:text-indent和text-align
列表元素可继承:list-style、list-style-type、list-style-position、list-style-image
表格元素可继承:border-collapse
8.3、优先级#
8.3.1、选择器优先级#
!important(非继承)>内联样式(1.0.0.0) > ID 选择器(0.1.0.0) > 类选择器 = 属性选择器 = 伪类选择器 (0.0.1.0)> 标签选择器 = 伪元素选择器(0.0.0.1)
注意:继承的权重为0.0.0.0
参数n可以为:整数(选择第几个) | 可以是odd(选择奇数)|even(选择偶数)|含n的计算公式(n从零开始 2n表示的就是选择第2个、第4个、第6个)↩
