CSSを使用して、画像を正方形にトリミングしつつ、タイル型に並べる方法

ギャラリーなどでCSSを使用して、画像を正方形にトリミングしつつ、タイル型に並べる方法はこちら

HTML部分

<ul>
  <li><img src="img01.jpg"></li>
  <li><img src="img02.jpg"></li>
  <li><img src="img03.jpg"></li>
  <li><img src="img04.jpg"></li>
  <li><img src="img05.jpg"></li>
  <li><img src="img06.jpg"></li>
</ul>

CSS部分

ul{
  display: flex;
  flex-wrap: wrap;
}
li{
  position: relative;
  width: 32%; /*ここを変更すると行数を変えられる 25%の場合は4列、33%の場合は3列、32%にしている理由はli要素の間に余白が欲しかったため*/
}
li:before{
  content: "";
  display: block;
  padding-top: 100%;
}
img{
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  object-fit: cover;
}

もし画像を正方形ではなく縦長にしたい場合は

ul{
  display: flex;
  flex-wrap: wrap;
}
li{
  position: relative;
  width: 32%;
}
li:before{
  content: "";
  display: block;
  padding-top: 100%;
  padding-bottom: 120%; /*追加*/
}
img{
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  object-fit: cover;
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です