# 选择器
选择器承担的是,从html文档中选择一个或多个标签来应用css的规则。
# 基本选择器
- 通用选择器 (opens new window)
- 元素选择器 (opens new window)
- 类选择器 (opens new window)
- ID选择器 (opens new window)
- 属性选择器 (opens new window)
# 通用选择器
选择所有元素。(可选)可以将其限制为特定的名称空间或所有名称空间。
语法:*
示例
*{
color: red;
}
# 元素选择器
按照给定的节点名称,选择所有匹配的元素。
语法: element
示例:
p{
color:red
}
匹配所有p
元素标签
# 类选择器
按照给定的 class
属性的值,选择所有匹配的元素。
语法: .className
示例:
.index{
color:red;
}
<p class='index'></p>
匹配 class='index'
的标签元素(此处是p
)
# ID选择器
按照 id
属性选择一个与之匹配的元素。需要注意的是,一个文档中,每个 ID 属性都应当是唯一的。
语法: #idName
示例:
#id{
color:red;
}
<p id="id"></p>
# 属性选择器
按照给定的属性,选择所有匹配的元素。
语法: [attr]
[attr=value]
[attr~=value]
[attr|=value]
[attr^=value]
[attr$=value]
[attr*=value]
示例:
[disabled]{
color: color;
}
<button disabled>按钮</button>
# 高级选择器
# 分组选择器
,
是将不同的选择器组合在一起的方法,它选择所有能被列表中的任意一个选择器选中的节点, 即选择器的规则合并写法。
语法: A,B
示例:
p,.class{
color:red;
}
<p>color</p>
<button class='class'></button>
# 后代组合器
(空格)组合器选择前一个元素的后代节点
语法: A B
示例:
div span{
color:red;
}
匹配 所有位于 任意 div
元素之内的 span
元素
# 直接子代组合器
>
组合器选择前一个元素的直接子代的节点。
语法: A>B
示例:
ul > li{
color:red;
}
匹配 直接 嵌套在 ul
元素内的所有 li
元素
# 一般兄弟组合器
~
组合器选择兄弟元素,也就是说,后一个节点在前一个节点后面的任意位置,并且共享同一个父节点。
语法: A ~ B
示例:
p ~ span{
color:red;
}
匹配 p
元素后 所有 span
元素
# 紧邻兄弟组合器
+
组合器选择相邻元素,即后一个元素紧跟在前一个之后,并且共享同一个父节点。
语法: A + B
示例:
h2 + p{
color: red;
}
匹配所有紧邻在 h2
元素后的 p
元素。
# 列组合器
||
组合器选择属于某个表格行的节点。
语法: A || B
示例:
col || td{
color: red;
}
匹配所有 col
作用域内的 td
元素。
# 伪选择器(Pseudo)
# 伪类
:
伪选择器支持按照未被包含在文档树中的状态信息来选择元素。
# 伪元素
::
伪选择器用于表示无法用 HTML 语义表达的实体。
# 优先级
当多个选择器同时应用到(匹配到)某一个元素上, 选择器的优先级将决定哪些规则被应用,哪些规则被覆盖。
优先级就是分配给指定的 CSS 声明的一个权重,它由 匹配的选择器中的 每一种选择器类型的 数值 决定。
而当优先级与多个 CSS 声明中任意一个声明的优先级相等的时候,CSS 中最后的那个声明将会被应用到元素上。
选择器 | 权重 |
---|---|
style='' 内联选择器 | 1000 |
id选择器 | 0100 |
类选择器, 属性选择器,伪类 | 0010 |
类型选择器, 伪元素 | 0001 |
!important 例外规则
当在一个样式声明中使用一个 !important
规则时,此声明将覆盖任何其他声明。
通配选择符(*)关系选择符(+, >, ~, ' ', ||)和 否定伪类 (:not())对优先级没有影响。