伪类用于选择元素的特殊状态或位置,如:hover、:focus、:first-child等,以单冒号定义;伪元素用于创建不存在于DOM中的虚拟结构,如::before、::after、::first-letter,推荐用双冒号表示。两者语法和用途不同,伪类匹配状态,伪元素生成装饰性内容,掌握它们可提升CSS表现力。

CSS中的伪类和伪元素是用于选择和样式化特定状态或结构部分的特殊选择器。它们看起来像类或元素,但实际上并不在HTML中存在,而是由CSS动态生成或匹配某些条件。理解它们的区别和用法,对掌握CSS至关重要。
伪类用于定义元素的特殊状态或位置。它以冒号 : 开头,常见于用户交互、元素在文档中的位置等场景。
常用伪类示例:a 标签。2n+1(奇数项)。例如,让列表中每一项鼠标悬停时背景变灰:
li:hover {
background-color: #f0f0f0;
}
又如,选中第一个段落:
立即学习“前端免费学习笔记(深入)”;
p:first-child {
font-weight: bold;
}
伪元素用于创建不在DOM中实际存在的虚拟元素,通常用来装饰或插入内容。它使用双冒号 ::(也可用单冒号兼容旧浏览器),表示其“非真实元素”特性。
常见伪元素说明:content 属性使用。content。比如,为每个警告提示前加一个感叹号:
.warning::before {
content: "⚠️ ";
color: red;
}
实现首字下沉效果:
p::first-letter {
font-size: 2em;
float: left;
margin-right: 5px;
}
修改选中文本的背景色:
::selection {
background-color: yellow;
color: black;
}
核心区别在于用途和语法:
例如:a:hover 是伪类,表示链接的悬停状态;而 p::before 是伪元素,表示段落前插入的内容。
::before 和 ::after 时,必须设置 content 属性,即使为空(如 content: "";)。display: block 或其他类型。a:hover:focus 表示既悬停又聚焦的状态。:nth-child 和 ::selection 在老版本IE中的支持情况。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号