CSS 伪元素
伪元素(Pseudo-element)允许你选择并样式化元素的特定部分,而不是整个元素。伪元素让你能够在不需要修改 HTML 结构的情况下,为元素添加装饰性的内容或样式。
什么是伪元素
伪元素是一个以双冒号(::)开头的关键字,用于选择元素的特定部分。
语法
选择器::伪元素 {
属性: 值;
}
注意:CSS3 规范推荐使用双冒号(::)来区分伪元素和伪类。虽然单冒号(:)在旧版本中也能工作,但为了代码的清晰性和未来的兼容性,建议使用双冒号。
常见伪元素介绍
1. ::before
在元素内容之前插入一个伪元素。
/* 在段落前添加引号 */
p::before {
content: """;
font-size: 24px;
color: #999;
}
/* 在链接前添加图标 */
a::before {
content: "🔗 ";
}
/* 在标题前添加装饰线 */
h2::before {
content: "";
display: block;
width: 50px;
height: 3px;
background-color: #007bff;
margin-bottom: 10px;
}
重要:::before 伪元素必须设置 content 属性才能显示,即使 content 是空字符串。
2. ::after
在元素内容之后插入一个伪元素。
/* 在链接后添加外部链接图标 */
a[href^="http"]::after {
content: " ↗";
color: #999;
}
/* 在必填字段后添加星号 */
.required::after {
content: " *";
color: red;
}
/* 在引用后添加引号 */
blockquote::after {
content: """";
font-size: 24px;
color: #999;
}
3. ::first-line
选择元素的第一行文本。
/* 段落的第一行 */
p::first-line {
font-weight: bold;
font-size: 1.2em;
color: #333;
}
/* 标题的第一行 */
h1::first-line {
text-transform: uppercase;
letter-spacing: 2px;
}
限制:::first-line 只能应用以下属性:
- 字体属性(font-*)
- 颜色属性(color)
- 背景属性(background-*)
- 文本属性(text-*、line-height、word-spacing、letter-spacing)