Can you stop an <img> tag from loading its image using CSS?

早过忘川 提交于 2020-01-12 12:52:34

问题


Is there any way to stop an <img> tag loading its image by just using CSS? I would like to avoid using JavaScript.

This doesn't seem to work (Firebug still shows the images loading):

display: none;
visibility: hidden;

回答1:


No — CSS only tells browsers what content should look like, it doesn’t specify loading behaviour.

The best you could do that involves CSS is to remove the <img> tag from your HTML, and replace it with an element that shows an image via CSS’s background-image property. Then the image is controlled more in the CSS than the HTML.

I still don’t think you can guarantee when the image will be downloaded though — I seem to remember early versions of Safari would download images referenced in a stylesheet even if they weren’t used on the current page? Using JavaScript (to create the <img> tag when you want the image loaded) is probably the most reliable way of controlling the timing of images getting loaded.

However, have a look at the page linked to from @Stackle’s answer to see the loading behaviour of browsers in April 2012 with different bits of CSS that hide elements with background images.




回答2:


This is an old question but today we can do it by using css only.

The answer is Yes, but not support on some browser. See this http://timkadlec.com/2012/04/media-query-asset-downloading-results/




回答3:


You can PRELOAD images using CSS only, but not actually delay the loading of images using CSS only.

This can, however, be done easily using something like jQuery Lazy Loader, which is MUCH easier than trying to do it by hand.




回答4:


Place this at the end of your style sheet:

* img { display: none !important; }



回答5:


You then set them all to be

    .img{visibility:hidden;} 

this will prevent them from making an http request but still preserves their size and spacing in the document preventing any redraws.

then when you want to show your hidden images (for instance the ones in view) you add a class to the surrounding html element and in your css tell this to be

    .show .img {visibility:visible;}

That should do it, Holmes.



来源:https://stackoverflow.com/questions/4528052/can-you-stop-an-img-tag-from-loading-its-image-using-css

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!