css的选择器有哪些?权重由大到小是怎么排序的?
常见的 CSS 选择器有:
-
ID 选择器 (
#id):- 选择具有特定 ID 属性的单个元素。权重最高。
- 例子:
#header { color: blue; } - 权重:100
-
类选择器 (
.class):- 选择具有指定类名的元素。多个类选择器的权重会加和。
- 例子:
.menu { font-size: 14px; } - 权重:10
-
属性选择器 (
[attribute],[attribute=value]):- 选择具有特定属性或属性值的元素。
- 例子:
[type="text"] { border: 1px solid black; } - 权重:10
-
伪类选择器 (
:hover,:first-child):- 选择符合特定状态或条件的元素。
- 例子:
a:hover { color: red; } - 权重:10
-
元素选择器 (
element):- 选择指定类型的所有元素。
- 例子:
p { margin: 0; } - 权重:1
-
伪元素选择器 (
::before,::after):- 选择元素的虚拟部分。
- 例子:
p::before { content: "Note: "; } - 权重:1
-
通配符选择器 (
*):- 选择所有元素,权重最低。
- 例子:
* { box-sizing: border-box; } - 权重:0
权重排序(由大到小):
- ID 选择器 (
#id): 权重 100 - 类选择器 (
.class)、属性选择器 ([attribute])、伪类选择器 (:hover): 权重 10 - 元素选择器 (
element)、伪元素选择器 (::before,::after): 权重 1 - 通配符选择器 (
*): 权重 0
组合选择器(如 div.class, #id .class)的权重是其组成部分的权重之和。例如,#id .class 的权重为 100 + 10 = 110。
