伪类与伪元素

  • 伪类:以冒号(:)开头,用于选择处于特定状态的元素。
  • 伪元素:以双冒号(::)开头,用于在文档中插入虚构的元素。

伪类

按照功能,可划分为以下几类:

  • 动态伪类::visited:focus:hover
  • 状态伪类::disabled:empty:required
  • 结构伪类::first-child:nth-of-type
  • 其他伪类::target:lang:not()

下面的表格详细记录了各种伪类及其描述:

伪类描述兼容性
:active元素处于活动状态时
:focus元素已获取焦点时
:hover元素处于悬浮状态时
:link链接未访问时
:visited链接已访问时
:first-child元素是首个子元素时
:last-child元素是最后一个子元素时
:nth-child()元素是第 n 个子元素时
:nth-last-child()元素是倒数第 n 个子元素时
:only-child元素是唯一子元素时
:first-of-type元素是首个特定类型的子元素时
:last-of-type元素是最后一个特定类型的子元素时
:nth-of-type()元素是第 n 个特定类型的子元素时
:nth-last-of-type()元素是倒数第 n 个特定类型的子元素时
:only-of-type元素是唯一的特定类型的子元素时
:not不满足指定条件时
:target元素 id 匹配到哈希值时
:root元素是文档树的根元素时
:lang()匹配到指定语言时
:empty元素处于没有子元素状态时
:invalid:valid表单项是否有效
:required:optional表单项是否必填
:in-range:out-of-range表单项是否超出范围
:read-only:read-write表单项是否只读
:enabled:disabled表单项是否禁用
:fullscreen当前处于全屏显示模式时⚠️
:blank输入框处于输入为空状态时
:dir()匹配到特定文字书写方向时

上表中的兼容性表示:

  • 代表主流浏览器都支持(至少 95% 以上)
  • 代表大部分主浏览器都不支持(仅 20% 以下浏览器实现该特性)
  • ⚠️ 代表部分浏览器支持(可能需要加前缀,例如 :webkit-:-moz-等)

伪元素

与伪类相比伪元素就少很多了,常用的如下:

伪元素选中或创建出来的元素兼容性
::first-letter选中块状元素中的首字母
::first-line选中首行
::before在之前创建一个不在文档树中的元素
::after在之后创建一个不在文档树中的元素
::placeholder选中表单元素的占位文本
::file-selector-button选中类型为 file 的 input 里面的 button
::selection选中被用户高亮的部分⚠️
::backdrop选中视觉聚焦元素后面的背景元素⚠️
::marker选中 list 的 marker⚠️

经典案例分析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值