現在是 responsive 的時代,所有的頁面都必須做響應式,處理這種網站的時候,圖片最令人頭痛,有時候無法規範客戶是否傳我們要求的比例,所以必須在前端做一些手腳讓畫面看起來起碼不那麼糟。
html
<div class="container">
<div class="row row-no-gutters">
<div class="col-md-3">
<div class="box">
<img src="https://via.placeholder.com/700x400.png">
</div>
</div>
<div class="col-md-3">
<div class="box">
<img src="https://via.placeholder.com/600x400.png">
</div>
</div>
<div class="col-md-3">
<div class="box">
<img src="https://via.placeholder.com/600x200.png">
</div>
</div>
<div class="col-md-3">
<div class="box">
<img src="https://via.placeholder.com/300x500.png">
</div>
</div>
</div>
</div>
這是大部分使用 bootstrap 時會使用的排版,一個四格圖片的配置,我放了幾張完全不同尺寸的 placeholder 圖片,一般人處理會在 img
上下 max-width: 100%
,讓他寬度不會爆表,但高度的部分就會被圖片撐高了,有些人會把圖片變成 background,再利用 cover 屬性搭配 padding-top
+ overflow: hidden
撐高度讓圖片置中並且不破格,但這樣會影響 SEO,我自己試出了一個配置還不錯。
scss
.container {
.box {
width: 100%;
padding-top: 66.6%;
overflow: hidden;
position: relative;
border: 1px solid grey;
}
.box {
img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
}
}
這樣的配置法可以在不將圖片變成 background 的情況下讓圖片滿版居中,IE 11 以下不支援,不過我不在乎。