【发布时间】:2026-02-23 12:35:01
【问题描述】:
我正在尝试使用 :before 选择器将图像放置在另一个图像上,但我发现将图像放置在 img 元素之前根本不起作用,只有一些其他元素。具体来说,我的风格是:
.container
{
position: relative;
display: block;
}
.overlay:before
{
content: url(images/[someimage].png);
position: absolute;
left:-20px;
top: -20px;
}
我发现这很好用:
<a href="[url]" class="container">
<span class="overlay"/>
<img width="200" src="[url]"/>
</a>
但事实并非如此:
<a href="[url]" class="container">
<img width="200" src="[url]" class="overlay"/>
</a>
我可以使用div 或p 元素代替span,并且浏览器正确地将我的图像覆盖在img 元素中的图像上,但是如果我将覆盖类应用于@987654331 @ 本身,它不起作用。
我想让这个工作,因为额外的 span 冒犯了我,但更重要的是,我有大约 100 篇博客文章我想修改,如果我可以一次性完成可以只修改样式表,但如果我必须返回并在a 和img 元素之间添加一个额外的span 元素,这将是更多的工作。
【问题讨论】:
-
这很奇怪,特别是因为 CSS 标准本身提供了一个使用 :before 和 IMG 元素的示例……
-
@chharvey:这个问题是在这个问题之后提出的。