純CSS(無 JavaScript)實現的響應式影像顯示
有許多方法可以實現web頁面裡影像的應答。然而,我碰到的所有方案都使用了JavaScript。這使我疑惑不用JavaScript實現影像響應是否可行。
我提出了下面純CSS的方案。
它是如何工作的呢?
我把<img>標籤防止在<span>內。src屬性將從伺服器獲得手機版本的影像。接著我還在<span>元素內部包含了一點CSS。
什麼??HTML文件中能嵌入了CSS?
是的,只要你增加了scoped屬性,這就在HTML5裡就是非常有效的。在這個CSS裡,我從某個斷點開始用了@media查詢把作為背景的高清影像新增到<span>裡。 在下面這段程式碼裡,我只新增了一個斷點,然而你當然可以按你喜歡的增加許多。
通過使用背景影像指示符,只有在需要的時候才會從伺服器獲取這個影像。也就是說,只有在media查詢滿足的時候才能獲取到。<img>將確保<span>有正確的高寬比,這樣<span>上的背景影像才能得到正確的現實。
程式碼展示
下面是可以執行的所有程式碼。
HTML
首先看HTML。
<span class="magik-responsive-image" id="image-01"> <img src="http://dummyimage.com/200x150/cdcdcd/000/?text=lo-res" alt="TODO"> <style scoped> @media screen and (min-width: 701px){#image-01{background-image:url(http://dummyimage.com/1600x1200/dcdcdc/000/?text=hi-res);}} </style> </span>
CSS 我們還需要對CSS最一點修改,以便在應當顯示高清影像的時候隱藏低清晰度的影像。技巧是增加backgroud-size:100%;這使得在維護高寬比不變的情況下伸展背景。
.magik-responsive-image { background-repeat: no-repeat; background-size: 100%; display: block; position: relative; } .magik-responsive-image img { max-width: 100%; } @media screen and (min-width: 701px) { .magik-responsive-image img{ opacity: 0; } }
好處
- 沒有JavaScript
- 實現起來簡單
- 還可用於視訊(我將在以後的部落格文章中發表有關這方面的內容)
缺點
- 在桌面環境下,需要向伺服器傳送兩個請求
- <style>標籤的scoped睡醒在主要的瀏覽器裡仍然沒有得到支援。正是由於這個原因,我們才需要增加一個id,不過在後端程式碼中增加這通常不是問題。
演示
看看 這個展示 。
相關文章
- 純CSS實現的響應式個人簡歷頁面CSS
- CSS實現限制顯示的字數,超出顯示"..."CSS
- 響應式影像教程
- 純CSS無表示式實現圖片等比縮放(轉載)CSS
- 用CSS樣式實現顯示隱藏層 (轉)CSS
- JavaScript 如何實現一個響應式系統JavaScript
- 【前端芝士樹】純CSS實現多行文字溢位顯示省略號前端CSS
- css3的flex實現的響應式佈局效果CSSS3Flex
- 純CSS製作液晶屏的顯示效果CSS
- 滑鼠滑過,縮圖放大顯示(純CSS)CSS
- 純 CSS 實現自適應正方形CSS
- 響應式影像與優化優化
- bootstrap6-響應式影像boot
- HTML5+CSS3實現的響應式垂直時間軸HTMLCSSS3
- 根據子元素數量顯示不同樣式-純css解決方案CSS
- 純 CSS 實現波浪效果!CSS
- Vue 響應式實現原理Vue
- [譯] 使用 CSS 網格佈局實現響應式圖片CSS
- 自己實現一個VUE響應式--VUE響應式原理Vue
- 用純CSS實現的箭頭CSS
- Tailwind CSS 響應式設計實戰指南AICSS
- css實現文字過長顯示省略號的方法CSS
- 響應式設計的5個CSS實用技巧CSS
- 純 JavaScript 實現的 OAuth 認證JavaScriptOAuth
- 純css實現控制文字框獲得焦點的樣式CSS
- 通過CSS3 Media Query實現響應式Web設計CSSS3Web
- 純 CSS 實現斜紋效果CSS
- 純CSS實現液晶字型效果CSS
- 7款純CSS3實現的炫酷動畫應用CSSS3動畫
- 如何實現 font-size 的響應式
- 由淺入深,帶你用JavaScript實現響應式原理(Vue2、Vue3響應式原理)JavaScriptVue
- css3實現多個元素依次顯示CSSS3
- CSS實現超出文字以省略號顯示CSS
- 純CSS實現Tab欄的切換CSS
- 純css實現的擷取字串功能CSS字串
- 如何用 CSS 實現多行文字的省略號顯示CSS
- 純css實現點選連結無效程式碼例項CSS
- [譯] 簡單的響應式現代 CSS 網格佈局CSS