CSS 伪类选择器

CSS伪类选择器完全指南

CSS伪类选择器完全指南

通过通俗易懂的解释和交互式演示掌握伪类选择器

伪类选择器是CSS中用于选择元素特定状态的关键工具。它们让你可以根据用户交互、元素位置或表单状态等条件来应用样式。无需修改HTML结构,就能创建动态效果!

1 链接状态伪类

用于链接的不同状态,必须按特定顺序定义才能正常工作。

a:link {} /* 未访问的链接 */
a:visited {} /* 已访问的链接 */
a:hover {} /* 鼠标悬停 */
a:active {} /* 点击时刻 */
a:focus {} /* 键盘聚焦 */

点击下面的链接查看效果:

普通链接 已访问链接 鼠标悬停 点击时刻 Tab键聚焦

2 结构伪类

基于元素在文档中的位置来选择元素。

:first-child {} /* 父元素的首个子元素 */
:last-child {} /* 父元素的最后一个子元素 */
:nth-child(n) {} /* 父元素的第n个子元素 */
:nth-last-child(n) {} /* 倒数第n个子元素 */
:first-of-type {} /* 同类型中的第一个 */
:last-of-type {} /* 同类型中的最后一个 */
:only-child {} /* 没有兄弟元素的元素 */
:empty {} /* 没有任何内容的元素 */

第一个子元素(粉色背景)

第二个子元素(带左边框)

第三个子元素(动画效果)

第四个子元素(带右边框)

最后一个子元素(蓝色背景)

唯一子元素(绿色背景)

3 表单状态伪类

针对表单元素的不同状态应用样式。

:focus {} /* 获得焦点的元素 */
:checked {} /* 被选中的复选框/单选 */
:disabled {} /* 被禁用的元素 */
:enabled {} /* 启用的元素 */
:required {} /* 必填字段 */
:optional {} /* 选填字段 */
:valid {} /* 有效输入 */
:invalid {} /* 无效输入 */

4 其他常用伪类

其他非常有用的伪类选择器。

:not(selector) {} /* 不符合选择器的元素 */
:target {} /* URL片段标识指向的元素 */
:root {} /* 文档的根元素(html) */
:lang(language) {} /* 特定语言的元素 */
:is(selector) {} /* 匹配列表中任意选择器 */
:where(selector) {} /* 优先级为0的:is() */

普通段落

特殊段落(.special类)

另一个普通段落

使用:not(.special)选择器的效果会跳过特殊段落

重要注意事项:

  • 🔑 链接伪类(LVHA)顺序很重要::link → :visited → :hover → :active
  • 🎯 :hover和:focus常一起使用,确保键盘和鼠标用户都有反馈
  • 📐 结构伪类是基于元素在DOM树中的位置,而不是视觉位置
  • 🔢 :nth-child()的参数可以是数字、关键字(even/odd)或公式(如2n+1)
  • ⚡ :not()伪类不接受其他伪类作为参数,仅接受简单选择器
  • 🌐 :root选择器优先级高于html选择器
  • ✅ 表单验证伪类(:valid/:invalid)不需要JS即可工作

CSS伪类选择器指南 | 为编程小白设计 | 通过可视化示例学习CSS核心概念

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部