Javascript 你能阻止一个<;img>;标签从使用CSS加载其图像?

Javascript 你能阻止一个<;img>;标签从使用CSS加载其图像?,javascript,html,css,xhtml,Javascript,Html,Css,Xhtml,是否有任何方法可以通过使用CSS阻止标记加载其图像?我希望避免使用JavaScript 这似乎不起作用(Firebug仍然显示加载的图像): 否-CSS只告诉浏览器内容应该是什么样子,它没有指定加载行为 涉及CSS的最好方法是从HTML中删除标记,并将其替换为通过CSS的background image属性显示图像的元素。然后图像在CSS中比在HTML中受到更多的控制 我仍然不认为你能保证图像何时会被下载——我似乎记得早期版本的Safari会下载样式表中引用的图像,即使它们没有在当前页面上使用?

是否有任何方法可以通过使用CSS阻止
标记加载其图像?我希望避免使用JavaScript

这似乎不起作用(Firebug仍然显示加载的图像):


否-CSS只告诉浏览器内容应该是什么样子,它没有指定加载行为

涉及CSS的最好方法是从HTML中删除
标记,并将其替换为通过CSS的
background image
属性显示图像的元素。然后图像在CSS中比在HTML中受到更多的控制

我仍然不认为你能保证图像何时会被下载——我似乎记得早期版本的Safari会下载样式表中引用的图像,即使它们没有在当前页面上使用?使用JavaScript(当您希望加载图像时创建
标记)可能是控制图像加载时间的最可靠方法

但是,请查看链接到from的页面,以了解2012年4月浏览器的加载行为,浏览器使用不同的CSS位隐藏背景图像中的元素。

您可以,但实际上不能仅使用CSS延迟图像加载


但是,这可以很容易地使用类似的方法来完成,这比手动完成要容易得多。

将其放在样式表的末尾:

* img { display: none !important; }

然后将它们全部设置为

    .img{visibility:hidden;} 
这将阻止它们发出http请求,但仍保留它们在文档中的大小和间距,以防止任何重画

然后,当您想要显示隐藏的图像(例如视图中的图像)时,您可以向周围的html元素添加一个类,并在css中告诉它

    .show .img {visibility:visible;}

这应该可以做到,霍姆斯。

这是一个老问题,但今天我们只能通过使用css来做到

答案是肯定的,但在某些浏览器上不支持。
请看此

多介绍一些背景知识可能会有所帮助?为什么你可以修改css而不能修改html?你想以后再显示图像吗?为什么要避免使用JavaScript,它和css一样受支持?我可以修改html(这是drupal视图列表),但我想我会选择使用两个视图,这样我就可以在第一篇文章中使用“大”图像,而在其他文章中使用小图像,或者是Paul D的解决方案。谢谢你的回答,但是正如你所看到的,lazy loader已经不能工作了,再加上我不想“预加载”,我只是根本不想加载它。我想这就是我想的。不幸的是,这是正确的答案-但是它可能需要一段时间才能标准化。目前,JS是您唯一的选择。JS不是唯一的解决方案:可以在以下位置找到一些使用背景图像的优秀示例:。(刚刚意识到Stackle的答案涵盖了这一点:))并非适用于所有情况,但可用于多种情况circumstances@HamishRouse:当然可以,不过我不想依赖那页的结果。我不确定浏览器是否已经决定了在所有情况下最好的行为是什么,所以如果他们中的一些或所有人在将来改变了他们的行为,我也不会感到惊讶。如果你从浏览器开发人员那里得到任何关于这方面的信息,grand,但是如果你真的想控制图像加载的时间,我认为你最好修改你的HTML或JavaScript来显式地做到这一点,而不是依赖于一些CSS,而这些CSS恰好能产生你想要的结果。不要使用非站点链接。链接内容可能会更改或变得无效。最好尝试将相应的内容移动到此处,并将链接添加为持续的信息链接。对实际问题的回答(即“是否有任何方法可以阻止
标记仅使用CSS加载其图像?”)仍然不是一个极好的文档,其中包含确切的示例-测试用例-结果。但是@Sebastian是真的。。
    .show .img {visibility:visible;}