我可以用CSS替换图像标签的图像吗?

时间:2012-04-12 07:44:07

标签: html css image background-image

我知道我无法使用CSS更改src标记的<img>属性。但是有可能隐藏来自src属性的图像,并在<img>标签上设置背景图片吗?

我认为是这样的:用填充/文本打算等移出实际图像,然后设置img-tag的背景图像,使其看起来像另一个图像。

Js不是一个选项,因为它是关于模板现有页面的。

4 个答案:

答案 0 :(得分:2)

你可以隐藏图像本身:

img#someid { display: none; }

然后(或之前,如果你愿意)在父元素上设置背景。

答案 1 :(得分:0)

我不太清楚“隐藏src属性的图像”是什么意思,但如果你的意思是隐藏你正在显示的图像的链接/路径,使用CSS(甚至作为背景图像)然后答案不,不是我知道的。人们可以轻松查看您的CSS文件。隐藏它的唯一真正方法是使用JS,但即便如此,您也可以从客户端禁用JS并仍然可以查看它。您可以将它放在像MySQL这样的数据库中并使用PHP显示它,但即便如此,仍然会显示图像路径。

答案 2 :(得分:0)

你能否将img包装在没有填充/边距的div中,并将img的display属性隐藏(通过js),以便显示div的背景。

但老实说,如果你不厌其烦,你应该通过js交换图像的src。

答案 3 :(得分:0)

您可以通过将img src指向1x1空白gif图像来实现。

如果您不想添加另一个div,则必须这样做,因为所有浏览器都会以不同方式处理缺少的图像和空src属性。 (例如,如果图像丢失,chrome会在图像周围添加边框。)

然后,您只需更改背景图像属性即可更改图像。

<强>更新

您还可以为其创建图像精灵,并通过更改背景位置属性为其设置动画。例如:

假设您有两个50px宽的图像,并且您希望第二个图像显示该元素何时悬停。只需将它们合并在一个图像中,上面的css就可以了。

img { background: url(sprite.jpg) 0 0 no-repeat; }
img:hover { background: url(sprite.jpg) -50px 0 no-repeat; }