可以使用同级组合器定位伪元素吗?最近的 CSS 问题引发了这个问题。
在这种情况下,带有前面图像的锚标记不应显示伪元素。由于图像的存在,直接定位锚点是不可行的。因此,尝试了在伪元素上使用同级组合器的替代方法,如下所示:
a[href^="http"]:after { content: ""; width: 10px; height: 10px; display: inline-block; background-color: red; } a[href^="http"] img ~ :after { display: none; }
但是,当锚标记包含图像时,CSS 无法隐藏伪元素。为什么会这样?
限制在于伪元素的本质。生成的内容(包括伪元素)不包含在 DOM 中,并且不会影响原始文档。 CSS 规范中明确指出了这一点:
“生成的内容不会更改文档树。特别是,它不会反馈到文档语言处理器(例如,用于重新解析)。”
因此,兄弟组合器无法定位 :before 或 :after 伪元素,因为它们不是 DOM 的一部分
类似场景,可以考虑使用 JavaScript 动态操作 DOM,达到想要的样式效果。
以上是同级组合器可以针对 CSS 中的伪元素吗?的详细内容。更多信息请关注PHP中文网其他相关文章!