寬度100%,高度自適應


需求:

一張圖片寬度要求在不同分辨率的屏幕下都能達到100%滿屏的寬度,圖片不能變形。

<div class="img"><img src="1.jpg" alt="測試圖片"/></div>

第一反應是,根據圖片的寬高比設置圖片的高度,如:圖片是1920*1080的,那么設置.img的樣式為:

再看效果,完美展示。任務完成。

可是,這是真的嗎?

當我們把img換個標簽,圖片作為背景圖片展示的時候,發現並不是我們想的這樣,height為0,這什么鬼。

事實上是,高度是相對於父級高度的百分比,前提是父級設置了高度,就是說父級的高度一定要有一個具體的值,如果父級完全是由內容撐起來的高度的話,瀏覽器會認為父級高度為0,所以不管你的子集設置的高度是百分之多少,瀏覽器渲染出來的結果都為0。

前面的方法能夠奏效,原因並不是.img設置了一個height的高度,而是因為img自動撐起來的高度。

所以這個方法並雖然解決了當前的需求,但是當我們要求把img標簽改為背景圖片的時候,就無法實現了。

換個思路,既然height的百分比不是相對於寬度的,那么有沒有相對於寬度多少的百分比數值呢?

有,那就是padding和margin。

這兩者的值設為百分比的話,是完全相對於寬度來的。

那么此時.img的高度與寬度完全一致,利用這一特性,可以完美實現上述需求。

充分利用padding的百分比值是相對於寬度的值這一特性。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM