浪人のサムライ

TOP

画像の高さが揃わない問題。これを解決する方法です。

画像 画像

HTML



<div class="g-box">
<img src="images/cloud.JPG" alt="画像">
<img src="images/mv/pc-main.jpg" alt="画像">
</div>


SCSS


.g-box{
display: grid;
grid-template-columns: repeat(auto-fit,minmax(250px,1fr));
img{
height: 300px;
object-fit: cover;
}
}


スマホでは1カラムですが、画面サイズが768pxを超えると高さが合う写真が横に並びます。この2枚はサイズが異なります。何もしなければ、下の画像のように高さが異なります。解説の都合上、別のクラス名を付けています。

画像 画像


<div class="g-box-2">
<img src="images/cloud.JPG" alt="画像">
<img src="images/mv/pc-main.jpg" alt="画像">
</div>


上の画像にならないように、imgにたいして、高さ(height)とobject-fit: coverを書きます。

高さが異なっても

同サイズなら、とくに問題ありませんが、写真が複数で高さも異なる場合、いちいち、アプリでトリミングは現実的ではないですね。

SCSSやCSSでやれば解決。一瞬でできます。

CSSは以下になります。


.g-box {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}
.g-box img {
  height: 300px;
  -o-object-fit: cover;
     object-fit: cover;
}

.g-box-2 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

さいごに

他にも方法はありますが、もっとも単純かと思います。特に問題ありません。数枚ならアプリでトリミングしていいですが、100枚、200枚となると、シンドイでしょう。そのときは、SCSSやCSSでトリミングすると完璧です。

あくまで一例としてご理解ください。