返回

伪类选择器:让你的CSS更强大

前端

使用伪类选择器提升你的 CSS 技能

在网页开发中,样式化元素至关重要,而 CSS 伪类选择器则提供了强大的工具,让你根据元素的特定状态应用样式。本文将深入探究常用的伪类选择器,以及最近引入的增强功能,以帮助你提升 CSS 技能,打造更具吸引力且交互性的网页。

常见的伪类选择器

CSS 提供了一系列伪类选择器,用于根据元素的各种状态匹配元素:

  • :link :匹配未访问的链接。
  • :visited :匹配已访问的链接。
  • :hover :匹配鼠标悬停在其上的元素。
  • :active :匹配被点击或激活的元素。
  • :focus :匹配获得或具有焦点的元素。
  • :enabled :匹配可用元素。
  • :disabled :匹配禁用元素。
  • :checked :匹配被选中的元素。
  • :indeterminate :匹配处于不确定状态的元素,如复选框或单选按钮。
  • :target :匹配具有特定 ID 的元素,当用户单击链接时,跳转到该元素。
  • :not :匹配不满足指定条件的元素。

代码示例:

/* 更改鼠标悬停时链接的颜色 */
a:hover {
  color: red;
}

/* 更改被点击时按钮的背景颜色 */
button:active {
  background-color: blue;
}

新增伪类选择器::has、:is 和 :where

CSS 最近推出了额外的伪类选择器,进一步扩展了其功能:

  • :has :匹配包含匹配指定选择器的子元素的元素。
  • :is :匹配匹配指定选择器的元素。
  • :where :匹配匹配指定选择器的元素,但与 :is 不同,:where 可以匹配任何选择器。

代码示例:

/* 匹配包含无序列表的元素 */
div:has(ul) {
  border: 1px solid black;
}

/* 匹配无序列表或有序列表 */
ul, ol:is(ul, ol) {
  color: green;
}

/* 匹配所有悬停的元素 */
*:where(:hover) {
  text-decoration: underline;
}

伪类选择器的用途

伪类选择器提供了广泛的应用程序,例如:

  • 创建交互式链接。
  • 启用按钮反馈。
  • 强调获得焦点的表单元素。
  • 根据用户选择动态样式元素。
  • 根据元素的嵌套结构匹配元素。
  • 应用样式以匹配任何满足特定条件的元素。

提升你的 CSS 技能

通过掌握伪类选择器,你可以显着提升你的 CSS 技能并创建更具视觉效果和交互性的网页。它们让你根据元素的动态状态进行样式化,从而增强用户体验并提升网页的功能性。

常见问题解答

1. :hover 和 :active 之间有什么区别?

  • :hover 在鼠标悬停在元素上时触发,而 :active 在元素被点击或激活时触发。

2. :enabled 和 :disabled 如何一起使用?

  • 你可以使用 :enabled 样式化可用元素,并使用 :disabled 样式化禁用元素。

3. :has 如何用于复杂选择?

  • :has 可用于创建嵌套选择器,匹配具有特定子元素结构的元素。

4. :where 的优势是什么?

  • :where 提供了最大的灵活性,因为它可以匹配任何选择器,而 :is 仅限于指定的选择器。

5. :not 如何用于排除元素?

  • :not 可以用于排除不满足指定条件的元素,从而让你对元素进行更精确的样式化。