請(qǐng)?jiān)谥髁鳛g覽器中打開測(cè)試頁(yè)面,在fiddler里查看http請(qǐng)求.
1. 隱藏圖片
<img src="1.jpg" style="display: none" />測(cè)試:test_1.html
結(jié)論:只有opera不產(chǎn)生請(qǐng)求.
注意:用visibility: hidden隱藏圖片時(shí),在opera下也會(huì)產(chǎn)生請(qǐng)求.
2. 重復(fù)圖片
<img src="1.jpg" /><img src="1.jpg" />測(cè)試:test_2.html
結(jié)論:所有瀏覽器都只產(chǎn)生一次請(qǐng)求 .
3. 重復(fù)背景
<style type="text/css"> .test1 { background: url(1.jpg) } .test2 { background: url(1.jpg) }</style><div class="test1">test1</div><div class="test2">test2</div>測(cè)試:test_3.html
結(jié)論:所有瀏覽器都只產(chǎn)生一次請(qǐng)求.
4. 不存在地元素地背景
<style type="text/css"> .test1 { background: url(1.jpg) } .test2 { background: url(2.jpg) } /* 頁(yè)面中沒(méi)有class為test2地元素 */</style><div class="test1">test1</div>測(cè)試:test_4.html
結(jié)論:背景僅在應(yīng)用地元素在頁(yè)面中存在時(shí),才會(huì)產(chǎn)生請(qǐng)求.這對(duì)css框架來(lái)說(shuō),很有意義.
5. 隱藏元素地背景
<style type="text/css"> .test1 { background: url(1.jpg); display: none; } .test2 { background: url(2.jpg); visibility: hidden; }</style><div class="test1">test1</div>測(cè)試:test_5.html
結(jié)論:opera和firefox對(duì)于用display: none隱藏地元素背景,不會(huì)產(chǎn)生http請(qǐng)求.僅當(dāng)這些元素非display: none時(shí),才會(huì)請(qǐng)求背景圖片.
6. 多重背景
<style type="text/css"> .test1 { background: url(1.jpg); } .test1 { background: url(2.jpg); }</style><div class="test1">test1</div>測(cè)試:test_6.html
結(jié)論:除了基于webkit渲染引擎地safari和chrome,其它瀏覽器只會(huì)請(qǐng)求一張背景圖.
注意:webkit引擎瀏覽器對(duì)背景圖都請(qǐng)求,是因?yàn)橹С謈ss3中地多背景圖.
7. hover地背景加載
<style type="text/css"> a.test1 { background: url(1.jpg); } a.test1:hover { background: url(2.jpg); }</style><a href="#" class="test1">test1</a>測(cè)試:test_7.html
結(jié)論:觸發(fā)hover時(shí),才會(huì)請(qǐng)求hover狀態(tài)下地背景.這會(huì)造成閃爍,因此經(jīng)常放在同一張背景圖里通過(guò)翻轉(zhuǎn)來(lái)實(shí)現(xiàn).
注意:在圖片no-cache地情況下,ie每次hover狀態(tài)改變時(shí),都會(huì)產(chǎn)生一次新請(qǐng)求.很糟糕.
2009-05-13晚補(bǔ)充:上面地解釋有誤,更詳細(xì)地解釋請(qǐng)參考續(xù)篇.翻轉(zhuǎn)技巧指地是sprite技術(shù),例子:test_7b.html, 在ie6下不會(huì)產(chǎn)生閃爍.
8. js里innerhtml中地圖片
<script type="text/javascript"> var el = document.createelement('div'); el.innerhtml = '<img src="1.jpg" />'; //document.body.appendchild(el);</script>測(cè)試:test_8.html
結(jié)論:只有opera不會(huì)馬上請(qǐng)求圖片.
注意:當(dāng)添加到dom樹上時(shí),opera才會(huì)發(fā)送請(qǐng)求.
9. 圖片預(yù)加載
最常用地是js方案:
更多信息請(qǐng)查看IT技術(shù)專欄
2025國(guó)考·省考課程試聽報(bào)名