Web前端圖片加載的方式多種多樣,其所產生的HTTP請求也各異,這裡我們就來列舉CSS控制前端圖片HTTP請求的各種情況示例,需要的朋友可以參考下
圖片的http請求,有很多種情況,那麼究竟什麼情況下面不會發生請求呢?下面我用案例一一列舉一下,希望對你深入了解http圖片請求有所幫助。
1. 隱藏圖片
<img src="/static/imghwm/default1.png" data-src="haorooms.jpg" class="lazy" style="max-width:90%" / alt="如何使用CSS控制前端圖片HTTP請求" >
http請求如下:
結論:只有Opera不產生請求。注意:用visibility: hidden隱藏圖片時,在Opera下方也會產生請求。
2. 重複圖片
<img src="/static/imghwm/default1.png" data-src="haorooms.jpg" class="lazy" / alt="如何使用CSS控制前端圖片HTTP請求" > <img src="/static/imghwm/default1.png" data-src="haorooms.jpg" class="lazy" / alt="如何使用CSS控制前端圖片HTTP請求" >
http 要求如下:
結論:所有瀏覽器都只產生一次請求。
3. 重複背景
<style type="text/css"> .test1 { background: url(haorooms.jpg) } .test2 { background: url(haorooms.jpg) } </style> <p class="test1">test1</p> <p class="test2">test2</p>
http要求如下:
結論:所有瀏覽器都只產生一次請求。
4. 不存在的元素的背景
<style type="text/css"> .test1 { background: url(haorooms.jpg) } .test2 { background: url(http2.jpg) } /* 页面中没有class为test2的元素 */ </style> <p class="test1">test1</p>
http請求如下:
結論:背景僅當應用程式的元素在頁面中存在時,才會產生請求。這對CSS框架來說,很有意義。
5. 隱藏元素的背景
<style type="text/css"> .test1 { background: url(haorooms.jpg); display: none; } .test2 { background: url(http2.jpg); visibility: hidden; } </style> <p class="test1">test1</p>
http請求如下:
結論:Opera和Firefox對於用display: none隱藏的元素背景,不會產生HTTP請求。只有當這些元素非display: none時,才會要求背景圖片。
6. 多重背景
<style type="text/css"> .test1 { background: url(haorooms.jpg); } .test1 { background: url(http2.jpg); } </style> <p class="test1">test1</p>
上面這段程式碼的http請求,只會請求http2.jpg這張圖片,原因是test1的class把上面的給覆蓋掉了,所有隻請求後面的一張圖片!
假如用css3多張背景圖片的寫法:
<style type="text/css"> .test1 { background-image:url("haorooms.jpg"),url("http2.jpg"); } </style> <p class="test1">test1</p>
那麼http請求如下:
webkit引擎瀏覽器對背景圖都請求,是因為支援CSS3中的多背景圖。
7. hover的背景載入
<style type="text/css"> a.test1 { background: url(haorooms.jpg); } a.test1:hover { background: url(http2.jpg); } </style> <a href="#" class="test1">test1</a>
http請求如下:
結論:觸發hover時,才會請求hover狀態下的背景。不觸發的話,只請求預設的背景圖片。
8. JS裡innerHTML中的圖片
<script type="text/javascript"> var el = document.createElement('p'); el.innerHTML = '<img src="/static/imghwm/default1.png" data-src="haorooms.jpg" class="lazy" / alt="如何使用CSS控制前端圖片HTTP請求" >'; //document.body.appendChild(el); </script>
http請求如下:
結論:只有Opera不會馬上請求圖片。
注意:當加入到DOM樹上時,Opera才會發送請求。
9. 圖片預先載入
最常用的是JS方案:
<script type="text/javascript"> new Image().src = 'haorooms.jpg'; new Image().src = 'http2.jpg'; </script>
在無JS支援的環境下,可以採用隱藏元素來預先載入:
<img src="/static/imghwm/default1.png" data-src="haoroomscom.jpg" class="lazy" style="max-width:90%" / alt="如何使用CSS控制前端圖片HTTP請求" >
總結
1、對於隱藏圖片和隱藏元素的背景,Opera不會產生請求。
2、對於隱藏元素的背景,Firefox也不會產生請求。
3、對於尚未插入DOM樹的img元素,Opera不會產生請求。
4、基於webkit引擎的Safari和Chrome,支援多背景圖。
5、其它情景,所有主流瀏覽器保持一致。
希望上面的圖片http請求對您有幫助,大家可以互相留言交流!
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!
相關建議:
#
以上是如何使用CSS控制前端圖片HTTP請求的詳細內容。更多資訊請關注PHP中文網其他相關文章!

我知道,我知道:有大量的內容管理系統選項可用,而我進行了幾個測試,但實際上沒有一個是一個,y&#039;知道嗎?怪異的定價模型,艱難的自定義,有些甚至最終成為整個&

鏈接CSS文件到HTML可以通過在HTML的部分使用元素實現。 1)使用標籤鏈接本地CSS文件。 2)多個CSS文件可通過添加多個標籤實現。 3)外部CSS文件使用絕對URL鏈接,如。 4)確保正確使用文件路徑和CSS文件加載順序,優化性能可使用CSS預處理器合併文件。

選擇Flexbox還是Grid取決於佈局需求:1)Flexbox適用於一維佈局,如導航欄;2)Grid適合二維佈局,如雜誌式佈局。兩者在項目中可結合使用,提升佈局效果。

包含CSS文件的最佳方法是使用標籤在HTML的部分引入外部CSS文件。 1.使用標籤引入外部CSS文件,如。 2.對於小型調整,可以使用內聯CSS,但應謹慎使用。 3.大型項目可使用CSS預處理器如Sass或Less,通過@import導入其他CSS文件。 4.為了性能,應合併CSS文件並使用CDN,同時使用工具如CSSNano進行壓縮。

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

重構自己的代碼看起來是什麼樣的?約翰·瑞亞(John Rhea)挑選了他寫的一個舊的CSS動畫,並介紹了優化它的思維過程。

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For

@keyframesispopularduetoitsversatoryand and powerincreatingsmoothcsssanimations.keytricksinclude:1)definingsmoothtransitionsbetnestates,2)使用AnimatingMultatingMultationMultationProperPertiessimultane,3)使用使用4)使用BombingeNtibalibility,4)使用CombanningWiThjavoFofofofoftofofo


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境