是否可以在CSS中设置src属性值? 在大多数情况下,我们这样使用它:

<img src="pathTo/myImage.jpg" />

我希望它是这样的

<img class="myClass" />
.myClass {
    some-src-property: url("pathTo/myImage.jpg");
}

我想知道是否有一种方法可以做到这一点,而不使用CSS中的background或background-image属性。


当前回答

你可以在HTML代码中定义2个图像,并使用display: none;来决定哪一个是可见的。

其他回答

你可以在HTML代码中定义2个图像,并使用display: none;来决定哪一个是可见的。

他们是对的。IMG是内容元素,CSS是设计元素。 但是,当您出于设计目的使用某些内容元素或属性时,情况又会如何呢? 我有IMG跨我的网页,必须改变,如果我改变样式(CSS)。

好吧,这是一个解决方案定义IMG表示(不是真正的图像)在CSS风格。

创建一个1x1透明GIF或png。 将IMG的属性“src”分配给该图像。 在CSS样式中用“background-image”定义最终的表示形式。

它的工作就像一个魅力:)

我知道这是一个非常老的问题,但是没有答案提供为什么这永远不能做到的适当理由。虽然你可以“做”你想做的事情,但你不能以一种有效的方式去做。为了有一个有效的img标记,它必须有src和alt属性。

因此,任何给出不使用src属性的img标记的方法的答案都是在促进使用无效代码。

简而言之:在语法结构中,您所寻找的内容是不能合法地完成的。

来源:W3 Validator

我今天找到了一个解决方案(适用于IE6+, FF, Opera, Chrome):

<img src='willbehidden.png' 
 style="width:0px; height:0px; padding: 8px; background: url(newimage.png);">

工作原理:

图像被缩小,直到不再可见的宽度和高度。 然后,你需要用填充物“重置”图像大小。这 一个是16x16的图像。当然你可以使用padding-left / 填充顶部以制作矩形图像。 最后,使用背景将新图像放在那里。 如果新的背景图像太大或太小,我建议使用background-size,例如:background-size:cover;这样就能把你的图像放到分配的空间里。

它也适用于提交-输入-图像,它们保持可点击。

参见现场演示:http://www.audenaerde.org/csstricks.html#imagereplacecss

享受吧!

这里有一个很好的解决方案-> http://css-tricks.com/replace-the-image-in-an-img-with-css/ 正反两方面: (+)与具有相对宽度/高度的矢量图像(RobAu的答案不处理的事情) (+)是跨浏览器的(也适用于IE8+) (+)只使用CSS。所以不需要修改img src(或者如果你没有权限/不想改变已经存在的img src属性)。 (-)抱歉,它使用后台CSS属性:)