有哪些标签是不支持伪元素的?

以下 HTML 标签不支持伪元素(::before::after):

  • 空元素 (Void elements): 这些元素在 HTML 规范中定义为不能包含任何内容的元素。由于伪元素的目的是在元素的内容之前或之后插入内容,因此空元素无法使用它们。常见的空元素包括:
    • area
    • base
    • br
    • col
    • embed
    • hr
    • img
    • input
    • keygen (已弃用)
    • link
    • meta
    • param
    • source
    • track
    • wbr

其他一些需要注意的点:

  • iframe: 虽然 <iframe> 不是空元素,但在大多数情况下,你无法使用伪元素来设置 iframe 本身 的样式。 你可以使用伪元素来设置 iframe 内容 的样式,但这需要访问 iframe 的文档,并且会受到跨域策略的限制。

  • 替换元素 (Replaced elements): 替换元素的内容由外部资源(例如图像或浏览器插件)控制。 虽然技术上并非完全不可能,但使用伪元素设置替换元素的样式通常效果有限。 例如,你可以使用伪元素在 <img> 元素之前或之后添加内容,但你无法使用它们更改图像本身。

总而言之,记住不支持伪元素的主要类别是空元素。 理解这一点的关键在于伪元素的工作原理:它们在元素内容的前后插入生成的内容。 由于空元素没有内容,因此伪元素也就无处可依。

posted @ 2024-12-04 09:35  王铁柱6  阅读(31)  评论(0)    收藏  举报