html - :before not work on img elements?

标签 html css

我正在尝试使用 :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>

我可以使用 divp 元素代替 span,并且浏览器可以正确地将我的图像覆盖在 img 元素,但是如果我将覆盖类应用到 img 本身,它就不起作用了。

我想让这个工作,因为额外的 span 冒犯了我,但更重要的是,我有大约 100 篇我想修改的博客文章,我可以这样做如果我可以直接修改样式表,但如果我必须返回并在 aimg 之间添加一个额外的 span 元素> 元素,这将是更多的工作。

最佳答案

不幸的是,大多数浏览器不支持在 img 标签上使用 :after:before

http://lildude.co.uk/after-css-property-for-img-tag

但是,您可以使用 JavaScript/jQuery 完成所需的工作。看看这个 fiddle :

http://jsfiddle.net/xixonia/ahnGT/

$(function() {

    $('.target').after('<img src="..." />');

});

编辑:

关于不支持此功能的原因,请查看 coreyward's answer .

关于html - :before not work on img elements?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5843035/

相关文章:

html - CSS 中的 id 和 class 有什么区别,什么时候应该使用它们?

php - CKEditor 忽略了我的 CSS

html - 将 CSS3 形状居中

javascript - 我如何将偷看效果从悬停更改为滚动

html - 页面打印后字段周围的边框不可见

html - 如何删除 Bootstrap 网格中不需要的间隙,使其看起来像一张 table ?

javascript - 防止 jquery 自动完成在单击外部时关闭搜索结果框

html - Polymer 核心图标在 FireFox 中不呈现

javascript - 使用 mousemove 显示叠加 ID

Javascript增量变量来更新表格单元格onclick