before、after伪类用在<img>标签上失效的问题

本文探讨了CSS中的:before和:after伪类在处理img等单标签元素时可能遇到的问题。由于标准未明确定义这些伪元素与可替换元素如img的交互,导致浏览器实现存在差异,使得在某些情况下,before和after伪类无法在img标签上正常工作。文章引用了W3C的标准注释,指出未来规范将对此进行更详细的定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考链接

https://www.w3.org/TR/CSS21/generate.html#before-after-content

问题

before、after伪类用在标签上失效

原因

before和:after伪元素指定生成内容的样式和位置。正如它们的名称所示,:before和:after伪元素指定了document tree content内容之前和之后的内容位置。content属性与这些伪元素一起指定要插入的内容。

文中的document tree content,对于 img 这种单标签,似乎不存在内容或子元素在标签中,所以选择器没有生效。实际上标准中还有一行注释:

W3C标准中里面是这么说的:

Note. This specification does not fully define the interaction of
:before and :after with replaced elements (such as IMG in HTML). This
will be defined in more detail in a future specification.

对于可替换元素,标准并没有清晰定义,这也导致了浏览器实现的差异性。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值