猿问

为什么不:before和:after伪元素与`img`元素一起使用?

为什么不:before和:after伪元素与`img`元素一起使用?

我试图用一个:before伪元素img元素。

考虑这个HTML和CSS ......

HTML

<img src="http://0.gravatar.com/avatar/this-is-not-a-hash" alt="" />

CSS

img:before {
  content: "hello";}

jsFiddle

这不会产生预期的效果(在Chrome 13和Firefox 6中测试)。但是,它适用于a divspan元素。

为什么不?

有没有办法让伪元素与img元素一起使用?


慕雪6442864
浏览 2027回答 3
3回答

幕布斯7119047

规范说&nbsp;......注意。本规范不完全定义的相互作用:before和:after与替换元素(如IMG在HTML)。这将在未来的规范中更详细地定义。我想这意味着他们不使用img元素(现在)。

烙印99

只是为了测试并且知道它不漂亮,你可以做以下事情来使伪元素与'img'元素一起使用。添加:display: block; content: ""; height: (height of image)px&nbsp;到CSS中的img元素。虽然它会使你的img标签成为空的原因content: ""然后你可以style="background-image: url(image.jpg)"&nbsp;在html中添加:到你的img元素。在Fx,Chrome和Safari中进行了测试

智慧大石

可能是浏览器供应商没有在img标签上实现伪元素,因为它们对规范的解释:img严格来说,元素不是块级元素或内联元素,它是一个空元素。
随时随地看视频慕课网APP
我要回答