常见 CSS 选择器、优先级计算及可继承属性介绍

CSS 选择器是用于选择 HTML 元素并应用样式规则的工具。以下是常见的 CSS 选择器及其优先级计算方式,以及可继承的 CSS 属性。
常见的 CSS 选择器
-
元素选择器:选择特定类型的 HTML 元素。
p { color: red; } -
类选择器:选择具有特定类名的元素。
.my-class { color: blue; } -
ID 选择器:选择具有特定 ID 的元素。
#my-id { color: green; } -
属性选择器:选择具有特定属性或属性值的元素。
[type="text"] { color: purple; } -
伪类选择器:选择元素的特定状态。
a:hover { color: orange; } -
伪元素选择器:选择元素的特定部分。
p::first-line { color: pink; } -
后代选择器:选择某个元素的后代元素。
div p { color: brown; } -
子选择器:选择某个元素的直接子元素。
div > p { color: yellow; } -
相邻兄弟选择器:选择紧接在另一个元素后的元素。
h1 + p { color: gray; } -
通用选择器:选择所有元素。
* { margin: 0; }
优先级计算
CSS 选择器的优先级是通过一个权重系统来计算的,通常表示为 (a, b, c, d),其中:
a:内联样式(style属性)的权重。b:ID 选择器的数量。c:类选择器、属性选择器和伪类的数量。d:元素选择器和伪元素的数量。
优先级从高到低依次为:
- 内联样式(
style属性):(1, 0, 0, 0) - ID 选择器:
(0, 1, 0, 0) - 类选择器、属性选择器、伪类:
(0, 0, 1, 0) - 元素选择器、伪元素:
(0, 0, 0, 1)
优先级比较时,从左到右依次比较 a、b、c、d 的值,值大的优先级高。如果值相同,则后定义的样式会覆盖先定义的样式。
可继承的 CSS 属性
并非所有 CSS 属性都可以继承,以下是一些常见的可继承属性:
-
文本相关属性:
colorfont-familyfont-sizefont-stylefont-weightline-heighttext-aligntext-indenttext-transformletter-spacingword-spacing
-
列表相关属性:
list-style-typelist-style-positionlist-style-image
-
表格相关属性:
border-collapseborder-spacing
-
其他属性:
visibilitycursor
总结
- CSS 选择器:包括元素选择器、类选择器、ID 选择器、属性选择器、伪类选择器、伪元素选择器、后代选择器、子选择器、相邻兄弟选择器和通用选择器。
- 优先级计算:通过
(a, b, c, d)权重系统计算,内联样式优先级最高,ID 选择器次之,类选择器、属性选择器和伪类再次之,元素选择器和伪元素优先级最低。 - 可继承属性:主要包括文本、列表、表格相关属性以及其他一些属性。
理解这些概念有助于编写更高效、可维护的 CSS 代码。