有許多方法可以實(shí)現(xiàn)web頁(yè)面里圖像的應(yīng)答。然而,我碰到的所有方案都使用了JavaScript。這使我疑惑不用JavaScript實(shí)現(xiàn)圖像響應(yīng)是否可行。

  我提出了下面純CSS的方案。

  它是如何工作的呢?

  我把<img>標(biāo)簽防止在<span>內(nèi)。src屬性將從服務(wù)器獲得手機(jī)版本的圖像。接著我還在<span>元素內(nèi)部包含了一點(diǎn)CSS。

  什么??HTML文檔中能嵌入了CSS?

  是的,只要你增加了scoped屬性,這就在HTML5里就是非常有效的。在這個(gè)CSS里,我從某個(gè)斷點(diǎn)開始用了@media查詢把作為背景的高清圖像添加到<span>里。 在下面這段代碼里,我只添加了一個(gè)斷點(diǎn),然而你當(dāng)然可以按你喜歡的增加許多。

  通過(guò)使用背景圖像指示符,只有在需要的時(shí)候才會(huì)從服務(wù)器獲取這個(gè)圖像。也就是說(shuō),只有在media查詢滿足的時(shí)候才能獲取到。<img>將確保<span>有正確的高寬比,這樣<span>上的背景圖像才能得到正確的現(xiàn)實(shí)。

  代碼展示

  下面是可以運(yùn)行的所有代碼。

  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 我們還需要對(duì)CSS最一點(diǎn)修改,以便在應(yīng)當(dāng)顯示高清圖像的時(shí)候隱藏低清晰度的圖像。技巧是增加backgroud-size:100%;這使得在維護(hù)高寬比不變的情況下伸展背景。

.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;
}
}

  好處

  缺點(diǎn)

  演示

  看看 這個(gè)展示

  原文地址:pure-css-responsive-images-yes-javascript

  哈爾濱品用軟件有限公司致力于為哈爾濱的中小企業(yè)制作大氣、美觀的優(yōu)秀網(wǎng)站,并且能夠搭建符合百度排名規(guī)范的網(wǎng)站基底,使您的網(wǎng)站無(wú)需額外費(fèi)用,即可穩(wěn)步提升排名至首頁(yè)。歡迎體驗(yàn)最佳的哈爾濱網(wǎng)站建設(shè)