CSS伪类选择器(非常详细)
伪类的名称不区分大小写,但需要以冒号
:开头。另外,伪类需要与 CSS 中的选择器结使用,语法格式如下:selector:pseudo-class {
property: value;
}
其中 selector 为选择器名称,pseudo-class 为伪类的名称。CSS 中提供了各种各样的伪类,如下表所示:
选择器 | 例子 | 例子描述 |
|---|---|---|
:active | a:active | 匹配被点击的链接 |
:checked | input:checked | 匹配处于选中状态的 <input> 元素 |
:disabled | input:disabled | 匹配每个被禁用的 <input> 元素 |
:empty | p:empty | 匹配任何没有子元素的 <p> 元素 |
:enabled | input:enabled | 匹配每个已启用的 <input> 元素 |
:first-child | p:first-child | 匹配父元素中的个子元素 <p>,<p> 必须是父元素中的个子元素 |
:first-of-type | p:first-of-type | 匹配父元素中的个 <p> 元素 |
:focus | input:focus | 匹配获得焦点的 <input> 元素 |
:hover | a:hover | 匹配鼠标悬停其上的元素 |
:in-range | input:in-range | 匹配具有指定取值范围的 <input> 元素 |
:invalid | input:invalid | 匹配所有具有无效值的 <input> 元素 |
:lang(language) | p:lang(it) | 匹配每个 lang 属性值以 "it" 开头的 <p> 元素 |
:last-child | p:last-child | 匹配父元素中的一个子元素 <p>, <p> 必须是父元素中的一个子元素 |
:last-of-type | p:last-of-type | 匹配父元素中的一个 <p> 元素 |
:link | a:link | 匹配所有未被访问的链接 |
:not(selector) | :not(p) | 匹配每个非 <p> 元素的元素 |
:nth-child(n) | p:nth-child(2) | 匹配父元素中的第二个子元素 <p> |
:nth-last-child(n) | p:nth-last-child(2) | 匹配父元素的倒数第二个子元素 <p> |
:nth-last-of-type(n) | p:nth-last-of-type(2) | 匹配父元素的倒数第二个子元素 <p> |
:nth-of-type(n) | p:nth-of-type(2) | 匹配父元素的第二个子元素 <p> |
:only-of-type | p:only-of-type | 匹配父元素中的 <p> 元素 |
:only-child | p:only-child | 匹配父元素中的子元素 <p> |
:optional | input:optional | 匹配不带 "required" 属性的 <input> 元素 |
:out-of-range | input:out-of-range | 匹配值在指定范围之外的 <input> 元素 |
:read-only | input:read-only | 匹配指定了 "readonly" 属性的 <input> 元素 |
:read-write | input:read-write | 匹配不带 "readonly" 属性的 <input> 元素 |
:required | input:required | 匹配指定了 "required" 属性的 <input> 元素 |
:root | root | 匹配元素的根元素,在 HTML 中,根元素永远是 HTML |
:target | #news:target | 匹配当前活动的 #news 元素(单击包含该锚名称的 URL) |
:valid | input:valid | 匹配所有具有有效值的 <input> 元素 |
:visited | a:visited | 匹配所有已经访问过的链接 |
前面在介绍《链接》时我们已经简单介绍了 :link、:visited、:active 和 :hover 几个伪类的使用,这里不再重复介绍,下面我们再来介绍几个比较常用的伪类。
1、first-child
伪类 first-child 能够匹配指定父元素下的个子元素,例如 ul li:first-child 能够匹配 <ul> 元素下的个 <li> 元素,示例代码如下:运行结果如下图所示:<!DOCTYPE html>
<html>
<head>
<style>
ul li:first-child { /*匹配<ul>下的个<li>标签*/
color: red;
}
</style>
</head>
<body>
<ul>
<li>CSS定位</li>
<li>CSS元素堆叠</li>
<li>CSS浮动</li>
</ul>
</body>
</html>

图:first-child 伪类
2、last-child
与 first-child 类似,伪类 last-child 能够匹配指定父元素下的一个子元素,例如 ul li:last-child 能够匹配 <ul> 元素下的一个 <li> 元素,示例代码如下:运行结果如下图所示:<!DOCTYPE html>
<html>
<head>
<style>
ul li:last-child { /*匹配<ul>下的一个<li>标签*/
color: red;
}
</style>
</head>
<body>
<ul>
<li>CSS定位</li>
<li>CSS元素堆叠</li>
<li>CSS浮动</li>
</ul>
</body>
</html>

图:last-child 伪类
3、nth-child
伪类 nth-child 是 CSS3 中新增的,它可以匹配指定元素下的第 n 个子元素,例如 ul li:nth-child(2) 能够匹配 <ul> 元素下的第二个 <li> 元素,示例代码如下:运行结果如下图所示:<!DOCTYPE html>
<html>
<head>
<style>
ul li:nth-child(2) { /*匹配<ul>下的第二个<li>标签*/
color: red;
}
</style>
</head>
<body>
<ul>
<li>CSS定位</li>
<li>CSS元素堆叠</li>
<li>CSS浮动</li>
</ul>
</body>
</html>

图:nth-child 伪类
- 随机文章
- 电信 马尔代夫 流量(电信提供马尔代夫流量专属服务,让您畅享海岛生活)
- 二手零食马尔代夫(零食再利用:马尔代夫「美食回收站」)
- 台风 马尔代夫(马尔代夫遭受台风袭击)
- 孙耀威在马尔代夫(孙耀威现身马尔代夫度假,粉丝心动!)
- 中国 马尔代夫 关系(中马关系升温:马尔代夫成为中国游客新热门目的地)
- 当马尔代夫遇疫情(马尔代夫新冠疫情爆发,旅游业受重创)
- 广东马尔代夫午餐(广东度假村为游客打造马尔代夫式午餐)
- 扬州附近马尔代夫(扬州周边现出美不胜收的马尔代夫天堂)
- 来宾马尔代夫歌曲(探索宾马尔代夫:体验当地的音乐文化)
- 汉服马尔代夫图片(中式古风超美马尔代夫旅拍照令人陶醉)
- 海岛天堂马尔代夫(马尔代夫:奢华岛屿与海洋世界的天堂)
- 桂林马尔代夫海边(桂林别样风光,比马尔代夫海滩更美!)
- 大疆 马尔代夫(大疆推出马尔代夫无人机旅拍套餐)
- 印军 马尔代夫(印度军方在马尔代夫进行军演)
- 访问 马尔代夫(探秘马尔代夫:珊瑚礁下的梦幻世界)
- 盛伦 马尔代夫(盛伦岛:马尔代夫奢华渡假胜地)
- 春节马尔代夫游客(春节假期:马尔代夫成热门旅游目的地)
- 白尼 马尔代夫(白尼探秘马尔代夫:来一场梦幻海岛之旅)
- 水城马尔代夫视频(水底世界穿越!探秘马尔代夫海底美景)
- 金刚想去马尔代夫(金刚计划前往马尔代夫,推迟南美行程)
- 韩国日本马尔代夫(韩日游客回归,马尔代夫旅游重新开启)
- 新生马尔代夫的梦(新生马尔代夫:一个新时代的度假胜地)
- 阿娇 马尔代夫(阿娇曝光马尔代夫度假照片,网友羡慕不已)
- 马尔代夫中国案件(马尔代夫警方:中国人涉嫌诈骗被拘留)
- 贺州马尔代夫规划(贺州马尔代夫规划有望推动旅游业发展)
- 马尔代夫买钓鱼艇(马尔代夫购买钓鱼艇有哪些注意事项?)
- 迪拜 马尔代夫(迪拜马尔代夫两地签署10年多次往返旅游协议)
- 马尔代夫丽世别墅(马尔代夫丽世别墅:享受梦幻度假生活)
- 马尔代夫回不了国(马尔代夫游客陷困广西,回国未获批准)
- 王子 马尔代夫(王子酒店再登马尔代夫,开设奢华私人岛屿度假酒店)
