CSS伪类选择器的用法(附带实例)
CSS 中的伪类选择器用于匹配不同状态的页面元素,首先了解 5 个常见的伪类,分别是:
如果元素中需要使用这几个状态或部分使用它们的样式,应注意定义的顺序。此外,鼠标指针悬停在触屏操作中是无效的,开发时应充分考虑用户的实际应用环境,对于用户可能无法看到的样式效果要根据实际情况综合考虑。
下面的代码演示了如何在 a 元素中应用伪类选择器:
元素 ID 属性是元素在页面中的唯一标识。在 URL 中,可以使用 # 符号快速定位到指定 ID 的元素,即打开页面后就会直接跳转到此元素的位置。此时,可以使用 :target 伪类定义目标元素的样式,如下面的代码:
:first-child 伪类表示元素的第一级子元素,如果需要获取下一级的第一个元素,可以和
:lang 伪类可以判断元素中的 lang 属性,如判断 p 元素是否包含中文设置可以使用 p:lang(zh),英文可以使用 p:lang(en) 等。
CSS3 中新增了一部分伪类,如下表所示:
- :link 适用于包含 href 属性的 a 元素,定义未访问过的链接;
- :visited 适用于包含 href 属性的 a 元素,定义已访问的链接;
- :focus 适合当前具有焦点的元素,如正在编辑的文本框;
- :hover 适合鼠标悬停时的元素;
- :active 适合激活元素时的样式,如点击操作时的元素。
如果元素中需要使用这几个状态或部分使用它们的样式,应注意定义的顺序。此外,鼠标指针悬停在触屏操作中是无效的,开发时应充分考虑用户的实际应用环境,对于用户可能无法看到的样式效果要根据实际情况综合考虑。
下面的代码演示了如何在 a 元素中应用伪类选择器:
<!doctype html> <html> <head> <meta charset="utf-8"> <style> a{font-size:1em;} a:link {color:navy;} a:visited {color:red;} a:hover {font-size:1.1em;} a:active {font-size:1.5em;} </style> <title>HTML5 页面结构</title> </head> <body> <a href="https://c.biancheng.net/" target="_blank">作者的网站</a> </body> </html>
元素 ID 属性是元素在页面中的唯一标识。在 URL 中,可以使用 # 符号快速定位到指定 ID 的元素,即打开页面后就会直接跳转到此元素的位置。此时,可以使用 :target 伪类定义目标元素的样式,如下面的代码:
<!doctype html> <html> <head> <meta charset="utf-8"> <style> a:target {font-size:2em; font-weight:bold;} </style> <title>HTML5 页面结构</title> </head> <body> <a id="link1" href="https://c.biancheng.net/" target="_blank">链接一</a> <a id="link2" href="https://c.biancheng.net/" target="_blank">链接二</a> <a id="link3" href="https://c.biancheng.net/" target="_blank">链接三</a> <a id="link4" href="https://c.biancheng.net/" target="_blank">链接四</a> <a id="link5" href="https://c.biancheng.net/" target="_blank">链接五</a> </body> </html>通过 http://127.0.0.1:10001/index.php#link3 地址访问页面的效果见下图,可以修改 # 后面的内容来观察运行效果。

:first-child 伪类表示元素的第一级子元素,如果需要获取下一级的第一个元素,可以和
>
符号一起使用。下面的代码展示了 :first-child 伪类的使用:
<!doctype html> <html> <head> <meta charset="utf-8"> <style> #div1:first-child {color:blue;} #div1>:first-child {font-size:2em;} </style> <title>HTML5 页面结构</title> </head> <body> <div id="div1"> <p id="p1">段落一</p> <p id="p2">段落二</p> <p id="p3">段落三</p> </div> </body> </html>本例中第一个样式指定 div1 的第一级子元素显示为蓝色,如代码中 div1 元素下的所有 p 元素;第二个样式指定第一级第一个元素 p1 的字体显示为 2 倍尺寸。页面显示效果见下图。

:lang 伪类可以判断元素中的 lang 属性,如判断 p 元素是否包含中文设置可以使用 p:lang(zh),英文可以使用 p:lang(en) 等。
CSS3 中新增了一部分伪类,如下表所示:
伪类 | 功能 |
---|---|
:required | 表单中的必填字段,使用 required 属性定义。 |
:optional | 表单中的选填字段,默认状态,即没有使用 required 属性的字段元素。 |
:valid | 数据验证通过的元素。 |
:invalid | 数据验证无效的元素。 |
:in-range | 数据在指定范围内的元素。 |
:out-of-range | 数据不在指定范围内的元素。 |
:read-only | 只读元素。 |
:read-write | 可读写元素。 |