选择器
通用选择器
也称为通配符,可以匹配任何元素。
* {
color: hotpink;
}
标签选择器
标签选择器直接匹配 HTML 元素。
section {
padding: 2em;
}
类选择器
一个 HTML 元素可以在其 class 属性中定义一个或多个项目。类选择器匹配应用类的任何元素。
<div class="my-class"></div>
<button class="my-class"></button>
<p class="my-class"></p>
.my-class {
color: red;
}
ID选择器
具有 id 属性的 HTML 元素应该是页面上具有 ID 值的唯一元素。
<div id="rad"></div>
#rad {
border: 1px solid blue;
}
属性选择器
可以使用属性选择器查找具有特定 HTML 属性或具有特定 HTML 属性值的元素。
<div data-type="primary"></div>
[data-type='primary'] {
color: red;
}
还可以查找具有该属性的元素,而不管其值如何。
[data-type] {
color: red;
}
还可以访问与属性值内的字符串部分匹配的运算符。
/* A href that contains "example.com" */
[href*='example.com'] {
color: red;
}
/* A href that starts with https */
[href^='https'] {
color: green;
}
/* A href that ends with .com */
[href$='.com'] {
color: blue;
}
分组选择器
选择器不必只匹配单个元素,可以用逗号分隔多个选择器。
strong,
em,
.my-class,
[lang] {
color: red;
}
伪类
用于选择 HTML 元素的特定状态或位置。
/* Our link is hovered */
a:hover {
outline: 1px dotted green;
}
/* Sets all even paragraphs to have a different background */
p:nth-child(even) {
background: floralwhite;
}
伪元素
伪元素与伪类不同,因为它们不是选择 HTML 元素的特定状态,而是像使用 CSS 插入新元素一样。
可以使用 ::before
伪元素在元素的开头插入内容,或使用 ::after
伪元素在元素的末尾插入内容。
.my-element::before {
content: 'Prefix - ';
}
还可以使用它们来定位元素的特定部分。例如,假设您有一个列表,则可以使用 ::marker
为列表中的每个项目符号点(或数字)设置样式
/* Your list will now either have red dots, or red numbers */
li::marker {
color: red;
}
还可以使用 ::selection
为用户突出显示的内容设置样式。
::selection {
background: black;
color: white;
}
连结符
连结符位于两个选择器之间。
后代连结符
后代连结符允许我们定位子元素。
<p>A paragraph of text with some <strong>bold text for emphasis</strong>.</p>
p strong {
color: blue;
}
下一个同级连接符
可以使用下面的选择器向 p 标签的所有子元素添加边距。
p * {
margin-top: 1px;
}
后续同级连结符
后续连结符与下一个同级选择器非常相似,但是使用 ~ 字符。
p ~ strong{
margin-top: 1px;
}
子级连结符
可以将连结符选择器限制为仅应用于直接子级。
p * + * {
margin-top: 1px;
}
复合选择器
可以组合选择器以提高特异性和可读性。
用于定位同样具有 .my-class 类的 <a>
元素
a.my-class {
color: red;
}