CSS 製作固定比例寬高區塊(Aspect Ratio / Height Based on Width)

在開發響應式網站(Responsive Web Design)常會需要製作等比例寬高圖片,不管螢幕尺寸如何縮放,圖片都能保持在固定比例,做法蠻多,以下列出其中兩種做法:

廣告

aspect-ratio

Chrome 88(2021) 開始支援的屬性,設置方式也很簡單,直接輸入寬高比就可以了

aspect-ratio: width / height;

缺點:aspect-ratio 屬性瀏覽器支援度較低,可以參考 can I use

padding-bottom

如果在意瀏覽器支援度,可以使用 padding-bottom 建立外層容器

寬高比 padding-bottom 代入值
16:9 56.25%
4:3 75%
5:4 80%
padding-bottom: 56.25%;

通常會搭配 position 定位使用,如下:

<div class="image-wrap">
<p>some description</p>
</div>
.image-wrap {
position: relative;
width: 100%;
padding-bottom: 56.25%;
}
p {
position: absolute;
width: 100%;
}

範例程式碼:


參考文章:

https://stackoverflow.com/questions/1495407/maintain-the-aspect-ratio-of-a-div-with-css
https://developer.mozilla.org/en-US/docs/Web/CSS/aspect-ratio

廣告
Nuxt.js Lazy Loading 圖片延遲載入 Javascript Debounce & Throttle 提升網頁效能

評論

廣告
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×