2010-10-19 47 views
7

有人可以帮我找到我的问题吗? 我有一个<img />,并会给他一个<a>标签内的背景图片。背景图片<img>元素

这是我的例子:

<img border="0" style="display:block; width:20px; height:20px; background-color:red; padding:9px; background:url(\'./images/system/button/close/close.png)\' no-repeat" /> 

背景颜色没有工作.. :-(我的例子是一个JavaScript字符串,这就是为什么我在逃避URL

的原因感谢您的帮助:-)

+1

你为什么要逃避报价?你确定URL中领先的'.'? – 2010-10-19 10:22:39

+0

除非我非常困惑,你为什么要调整一个img标签的BG而不使用它的SRC属性?而url中前面的'./'只是一个相对路径,我认为 – Ross 2010-10-19 10:26:01

+1

为什么不使用src属性?为什么你需要使用背景图像? – jerjer 2010-10-19 10:27:20

回答

9

你甚至不需要引号。

background:url(./images/system/button/close/close.png) 

使用DIV如果你能

<div style="height:20px; width:20px; padding:9px; background:url(./images/system/button/close/close.png) no-repeat red"></div> 
+0

请注意,div默认显示为block image is inline – jerjer 2010-10-19 10:29:33

+0

另外值得注意的是你的背景颜色不起作用,因为你越过它越过它。不管是'background:red url(...)'还是使用'background-image'。 – 2010-10-19 12:08:20

+1

为什么'使用div如果你可以'?如果元素的目的是显示图像,那么图像元素确实会产生更多的语义 – 2014-02-20 02:01:10

3

您正在转义您的报价标记并转置了第二个引号和括号。

在CSS:

url('foo') /* is technically fine but broken on IE/Mac */ 
url(foo)  /* is fine */ 
url('foo)' /* is not fine */ 
url(\'foo\') /* is not fine */ 

而罗斯在评论中指出,您的src属性丢失。我想象一下,在具有半透明背景的图像上设置背景图像是可行的,但如果您没有内容图像,请不要使用<img>元素(并且不要隐藏您拥有的任何内容图像background-image属性)。

+0

对不起,我忘了说这是我的JavaScript字符串.. – Patrik 2010-10-19 10:28:23

+0

哪个元素符合使用带有标记内背景的图像的资格? – Patrik 2010-10-19 10:40:55

1

不明白你为什么要逃避报价。

<img border="0" style="display:block; width:20px; height:20px; background-color:red; padding:9px; background:url('./images/system/button/close/close.png') no-repeat" /> 

这是否行得通?

你确定吗?在URL中?

+0

因为这是一个JavaScript字符串 – Patrik 2010-10-19 10:31:51

0

好吧,就算它的怪异使用<img/>标签这一点。 (这不是它的目的,使用src或背景div ...)

Here,它的工作

1

background-color:red;正在background:取代。

结合您的背景。然后,您可以通过删除背景的URL()中的引号和URL中的句点来进一步优化它。如果它相对于页面的位置,则只需删除反斜杠。

<img border="0" style="display:block; width:20px; height:20px; padding:9px; background:#F00 url(images/system/button/close/close.png) no-repeat" />

最后,如果你需要有一个alt属性的内容会显示出来,因为没有源。如果添加alt,请使用透明图像。