当前位置: 首页 > 面试题库 >

:before是否不适用于img元素?

岳佐
2023-03-14
问题内容

我正在尝试使用: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元素中的图像上,但是如果我将overlay类应用于img自身,则无法正常工作。

我希望这项工作能够正常进行,因为这会让我感到不span舒服,但更重要的是,我有大约100个我想修改的博客文章,如果可以修改样式表,我可以一口气做到这一点,但是如果我必须返回并spanaimg元素之间添加一个额外的元素,这将需要做更多的工作。


问题答案:

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

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

$(function() {

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

});


 类似资料:
  • 我已经完成了如下的 nuget 安装: 关于我的测试项目。 我有一个类似的测试: 我能做些什么来解决这个问题并查看我的测试? 补遗 我在4.6.1下工作,所以还不是核心。 关于同一个主题但没有帮助的问题: 为什么xunit运行程序找不到我的测试 此响应 和这个类似的 xunit.runner。visualstudio无法在Visual Studio 2013更新4上工作 所以到处都有,但都没用..

  • 我根据Eric Portis的优秀文章“Srcset和sizes”创建了一个网页,但它在我的iPhone 4s上无法正常工作。据我所知,4s有320个虚拟(或CSS)像素宽,但由于4s有视网膜显示器,这实际上转化为640(=2 x 320)个虚拟像素。当我在iPhone上查看下面显示的代码时(在纵向模式下),我看到两行“大”图像,每行中的每个图像占据视口宽度的三分之一。我认为这是不对的。 如果我正

  • 我收到一个编译错误: 然而,当我移除mapstruct注释处理器时,它可以很好地编译。 所以我认为mapstruct是在类生成之前扫描它们?对此有什么解决方案吗?

  • 问题内容: 我正在尝试将伪元素与元素一起使用。 考虑一下HTML和CSS … HTML CSS 这不会产生预期的效果(已在Chrome 13和Firefox 6中测试)。但是,它可以使用或元素。 为什么不? 有没有一种方法可以使伪元素与元素一起使用? 问题答案: 规范说 … 注意。该规范并未完全定义替换元素(例如HTML中的IMG)以及与替换元素的交互。这将在以后的规范中更详细地定义。 我猜这意味

  • 我正在将tomcat服务器从tomcat7升级到Tomcat8。但Struts1.1似乎不能在Tomcat8上工作。有人知道Tomcat8不支持Struts1.1吗。 下面是堆栈跟踪

  • 问题内容: 在此MS兼容性表上,它说IE9不支持伪元素和,但是当我尝试时,它似乎支持伪元素… 难道我做错了什么?我认为并且将是隐藏IE9中内容的好工具,而实际上却不是。 问题答案: IE8和更高版本支持CSS2伪元素和(具有传统的单冒号表示法)。它们不是CSS3的新功能。 另一方面,双冒号表示法是CSS3的新功能。IE9 确实 支持and和CSS1伪元素and的新符号。然而,展望未来,没有新的伪元