1. 伪类(Pseudo-classes)
伪类用于选择元素的某种状态或特定条件下的元素。例如,当鼠标悬停在一个链接上时,可以使用伪类来改变链接的颜色。伪类前面用一个冒号(:)表示。
常见伪类示例:
- :hover:当用户将鼠标悬停在元素上时应用样式。
- :active:当用户激活元素时(例如,点击一个链接时),应用样式。
- :focus:当元素获得焦点时应用样式(如文本框)。
- :nth-child(n):选中父元素的第 n 个子元素。
- :first-child、:last-child:选择父元素的第一个或最后一个子元素。
a:hover {
color: red; /* 当鼠标悬停在链接上时,文字颜色变为红色 */
}
2. 伪元素(Pseudo-elements)
伪元素用于创建元素的一部分并为其应用样式,通常用于向元素添加内容或修饰。伪元素前面用两个冒号(::)表示(在旧版本的 CSS 中可以用一个冒号),以区分它们与伪类。
常见伪元素示例:
- ::before:在元素的内容之前插入内容。
- ::after:在元素的内容之后插入内容。
- ::first-line:选择元素的第一行文本。
- ::first-letter:选择元素的第一个字母。
p::before {
content: "Note: "; /* 在每个 <p> 标签的开头插入 "Note: " */
color: blue;
}
伪类和伪元素的区别总结
-
功能不同:伪类用于选择元素的状态(如鼠标悬停、获得焦点等),而伪元素用于选择和操作元素的某个部分(如第一行、内容前后等)。
-
语法不同:伪类使用一个冒号(:),伪元素使用两个冒号(::),但在旧版本的 CSS 中伪元素也可以用一个冒号。
-
使用场景:伪类可以根据元素状态改变样式,而伪元素则可以用于生成内容或修饰元素的一部分。