伪类(Pseudo-classes)和伪元素(Pseudo-elements)是 CSS 中非常重要但容易混淆的概念。 简单的一句话总结: 伪类用于选择DOM树中已经存在的元素(基于状态或位置)。 伪元素用于创建DOM树中不存在的抽象元素,或者选中元素的特定部分。 以下是详细的对比和解析: --- 1. 核心概念区别 伪类 (Pseudo-classes) 定义:用于定义元素的特殊状态。它用于选择那些不能通过简单选择器(如 ID 或 Class)直接选中的元素。 逻辑理解:你可以把它想象成浏览器在特定条件下自动给元素添加了一个类名。 例如: 相当于当鼠标悬停时,浏览器给 div 加了一个 。 常见例子:, , , , , , . 伪元素 (Pseudo-elements) 定义:用于设置元素特定部分的样式,或者在元素前后插入内容。它创建了一个文档树中不存在的“虚拟”元素。 逻辑理解:你可以把它想象成浏览器在元素内部自动添加了一个新的 HTML 标签。 例如: 相当于浏览器在段落的第一行文字外包了一个 标签。 例如: 相当于在 div 内部的最前面插入了一个 标签。 常见例子:, ...