为啥内联“背景图像”样式在 Chrome 10 和 Internet Explorer 8 中不起作用?

Posted

技术标签:

【中文标题】为啥内联“背景图像”样式在 Chrome 10 和 Internet Explorer 8 中不起作用?【英文标题】:Why an inline "background-image" style doesn't work in Chrome 10 and Internet Explorer 8?为什么内联“背景图像”样式在 Chrome 10 和 Internet Explorer 8 中不起作用? 【发布时间】:2011-08-16 08:10:57 【问题描述】:

为什么following example 在 Firefox 4 中显示图像,但在 Chrome 10 和 Internet Explorer 8 中却没有?

html

<div style="background-image: url('http://www.mypicx.com/uploadimg/1312875436_05012011_2.png')"></div>

CSS:

div 
    width: 60px;
    height: 60px;
    border: 1px solid black;

任何解决方法的想法?

【问题讨论】:

该示例在 Chrome 12.0.712.0 中也不起作用 以防万一:url(http://www.mypicx.com/uploadimg/1312875436_05012011_2.png) 注意:没有撇号 - url() 函数不需要它们。 天才 :) 我删除了撇号并解决了问题! 【参考方案1】:

它在我的 google chrome 浏览器版本 11.0.696.60 中运行

我创建了一个简单的页面,没有其他项目,只有基本标签,没有单独的 CSS 文件,并得到了一张图片

这是我设置的:

<div id="placeholder" style="width: 60px; height: 60px; border: 1px solid black; background-image: url('http://www.mypicx.com/uploadimg/1312875436_05012011_2.png')"></div>

我放了一个 id 以防万一有隐藏的 id 标签并且它可以工作

【讨论】:

【参考方案2】:

你还必须指定宽度和高度

 <section class="bg-solid-light slideContainer strut-slide-0" style="background-image: url(https://accounts.icharts.net/stage/icharts-images/chartbook-images/Chart1457601371484.png); background-repeat: no-repeat;width: 100%;height: 100%;" >

【讨论】:

【参考方案3】:

正如c-smile提到的:只需要删除url()中的撇号:

<div style="background-image: url(http://i54.tinypic.com/4zuxif.jpg)"></div>

Demo here

【讨论】:

撇号在这里没有任何区别。这里还有其他一些问题。可能是@lpd 的回答(不允许盗链?)。您答案中的演示有效的唯一原因是它使用了http://i54.tinypic.com/4zuxif.jpg,而不是损坏的http://www.mypicx.com/uploadimg/1312875436_05012011_2.png 这很奇怪...... W3 规范将它们列为可选,并且在 url 包含某些字符的情况下是必需的。 w3.org/TR/CSS21/syndata.html#uri 这也为我解决了这个问题......当我定义内联样式时。它适用于 ' 在 .css 文件中。背景图片:网址(Img/load.gif);如果这不是一个正当的理由,那么想听听专家的更多意见。 我很想知道为什么会这样。我用 Chrome、Chromium、Safari、Firefox、IE 测试了我的网站,它只需要我删除 Chromium 的撇号。 感谢您挖掘规范。当我在 URI 中有一个空格并且我的图像没有出现时,我遇到了这个问题。把我逼疯了。解决方案是将您的 URI 用引号括起来。【参考方案4】:

Chrome 11 在其调试器中显示以下内容:

[错误] GET http://www.mypicx.com/images/logo.jpg未定义(未定义)

看起来托管服务正在使用一些时髦的动态系统,阻止这些浏览器正确获取它。 (相反,它会尝试获取默认的基本图像,这可能是一个 jpeg。)您可以将图像的另一个副本上传到其他地方吗?我希望它是最简单的解决方案。

编辑:看看当您使用普通的&lt;img&gt; 标签放置图像时,Chrome 会发生什么;)

【讨论】:

以上是关于为啥内联“背景图像”样式在 Chrome 10 和 Internet Explorer 8 中不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery隐藏/显示功能覆盖html内联样式背景图像?

将资产图像路径作为动态内联样式背景图像 url (Nuxt.js)

如何在 reactjs 中使用伪元素作为内联样式? [复制]

反应内联背景图像

为啥带有边框和背景图像样式的 QWidget 的行为与 QLabel、QDialog、...不同?

React 中的内联背景图像