一直搞不明白,隐藏的元素的背景图,在页面加载时,是否自动加载?
img隐藏时,图片会加载吗?
测试代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | <! DOCTYPE html> < html > < head > < meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> < title >img load</ title > < style > .divImg {background:url(cssImg1.jpg);} .divImg {background:url(cssImg2.jpg);} .divNullImg {background:url(cssNullImg.jpg);} .divImgNone {display:none;} .divImgNone {background:url(cssNoneImg1.jpg);} .divImgNone div {background:url(cssNoneImg2.jpg);} #divNone {background:url(cssNoneImg3.jpg);} .divHoverImg:hover {background:url(cssHoverImg1.jpg);} </ style > </ head > < body > < img src="img.jpg" /> < img src="cssImg2.jpg" /> < img src="ImgNone.jpg" style="display:none;" /> < div id="divNone" style="display:none; background:url(divNoneBack1.jpg);"> < img src="divNoneImg1.jpg" /> < div style="background:url(divNoneBack2.jpg);"></ div > </ div > < input type="button" value="显示隐藏" onclick="document.getElementById('divNone').style.display = 'block';" /> < div class="divImg"> img </ div > < div class="divImgNone"> < img src="divNoneImg2.jpg" /> img none < div ></ div > < div style="background:url(divNoneBack3.jpg);"></ div > </ div > < div class="divHoverImg"> test Hover </ div > < script > var img = new Image(); img.src = 'jsImg.jpg'; document.getElementById('divNone').style.backgroundImage = 'url(jsNoneImg.jpg)'; </ script > </ body > </ html > |
测试了chrome33 和 IE7 使用Fiddler 监控
测试结果如下:
结果很复杂,IE和chrome下hover样式的背景图,只有鼠标悬浮时才加载。chrome下隐藏的背景不加载,IE下隐藏的背景要加载。
结论chrome:
- 隐藏的元素及其包含的背景图不会加载(样式隐藏元素的当前背景会加载)。
- hover的背景图不会加载,当hover时才加载。
- 隐藏的img或img在隐藏的元素内也会加载。
- 没有匹配的样式中,包含的背景不会显示。
- 使用JS给隐藏的元素设置背景图时,会加载背景图。
结论IE:
- hover的背景图不会加载,当hover时才加载。
- 没有匹配的样式中,包含的背景不会显示。
欢迎转载,转载请注明:转载自[ http://www.cnblogs.com/zjfree/ ]
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步