CSS伪类选择符归纳
伪类选择符归纳
伪类选择符比较多,不加以归类很难记清楚记全;我们可以先把他分为两类
- 和元素本身状态有关,类似于链接点击前,点击后
- 和元素在DOM结构中所处的位置有关,类似于第n个元素,或者奇数行。
一、和元素本身状态有关
:link
,:visited
,:hover
,:active
:link
指的是超链接在访问前的状态:visited
指的是超链接在访问后的转态:hover
指的是鼠标悬停在元素上的状态:active
指的是鼠标点击元素不放时的转态
这几个伪类的书写有一定的顺序,:link
和:visited
的状态表示的是一个静态的状态,即链接要么就是被激活过,要么就是没激活过,激活后的css属性如果与激活前冲突,则覆盖激活前的属性;而:hover
和:active
是动作属性,设置这样的伪类css的目的就是为了使得执行相应动作时能够显示相应的状态,也就是希望属性冲突时,覆盖静态属性。因此:hover
和:active
伪类要写在后面从而覆盖静态属性,而:active
又是在:hover
基础上的动作,因此,:hover
在:active
之前。
正常顺序是::link
:visited
:hover
:active
:focus
,:empty
,:checked
,:enabled
,:disabled
,:target
:focus
设置对象在成为输入焦点(该对象的onfocus事件发生)时的样式。:empty
匹配没有任何子元素(包括text节点)的元素:checked
匹配用户界面上处于选中状态的元素(用于input type为radio与checkbox时):enabled
匹配用户界面上处于可用状态的元素:disabled
匹配用户界面上处于禁用状态的元素:target
匹配相关URL指向的元素
这些伪类都不太常用,需要可以查询使用。
二、和元素在DOM结构中所处的位置有关
- child类型:作为孩子该满足的条件
:first-child
: 元素得是其父元素的第一个子元素才匹配:last-child
: 元素得是其父元素的最后一个子元素才匹配:nth-child(n)
: 元素得是其父元素的第n个子元素才匹配:nth-last-child(n)
: 元素得是其父元素的倒数第n个子元素才匹配:only-child
: 元素得是其父元素的唯一一个子元素才匹配
- of-type类型:作为同类元素的兄弟该满足的条件
:first-of-type
: 元素得是其父元素的第一个该类元素才匹配:last-of-type
: 元素得是其父元素的最后一个该类元素才匹配:only-of-type
: 元素得是其父元素的唯一一个该类元素才匹配:nth-of-type(n)
: 元素得是其父元素的第n个该类元素才匹配:nth-last-of-type(n)
: 元素得是其父元素的倒数第n个子元素才匹配
- 其他
not
: 排除元素
例: li:not(:first-child): 元素不是其父元素的第一个子元素的li元素被匹配
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构