在前端處理圖片是很是常見的,而圖片展現又存在一個最大的問題:適應,
能夠看看這種狀況:css
固定空間展現圖片前端
就圖片展現而言,按寬高比進行縮放是最好的結果,寬高1:1的話,放到正方形空間內很好,但是若是是1:1.5的圖片須要放到正方形頁面容器裏面呢?url
目前須要前端處理的方式是使用background來操做,而不是img元素,須要如下幾個屬性的配合:code
爲了使圖片可以按照正常的寬高比顯示,能夠理解成如下幾步操做:htm
代碼能夠以下書寫:對象
background-image: url(test.img); // background-size這個須要注意,大小須要看伸縮時是寬度會有富餘仍是高度會有富餘,有富餘者爲auto,恰好填充滿的就是100% //好比寬高分別: 容器是100px*100px的,圖片是240px*200px,那麼在縮小填充容器時圖片的高度會先觸及到容器的邊緣,也就是填滿容器時,寬度有富餘爲auto,高度爲100%; background-size: auto 100%; // 可使用cover background-position: center; //背景圖片居中顯示,讓多餘部分相對容器對此展現 background-repeat: no-repeat; background-origin: border-box; //從border開始填充 background-clip: border-box; //border外的多餘背景圖片不展現,截取掉,
可使用background的縮寫模式:圖片
style="background:url(test.img) center/auto 100% no-repeat border-box border-box"
須要注意的是background-size的書寫須要看狀況而變
background-size這個須要注意,大小須要看伸縮時是寬度會有富餘仍是高度會有富餘,有富餘者爲auto,恰好填充滿的就是100%ip
好比寬高分別:
容器是100px100px的,圖片是240px200px,那麼在縮小填充容器時圖片的高度會先觸及到容器的邊緣,也就是填滿容器時,寬度有富餘爲auto,高度爲100%;
background-size: auto 100%;
因此能夠考慮使用cover這個值,background-size:cover;get