2023.7.27|コーディング

CSSで画像や写真を正方形や円形に縦横比を維持してトリミングする方法

CSSで画像や写真を正方形や円形に縦横比を維持してトリミングする方法

ホームページ上の画像や写真を特定の形状に整えることは重要な要素の一つです。特に、正方形や円形に縦横比を維持してトリミングすることで、美しいデザインを実現することができます。
画像や写真を正方形や円形に縦横比を維持してトリミングしたい場合は、HTMLとCSSのみで設定することができます。
CSSで設定する場合は、「object-fit」プロパティを使うことで画像や写真を正方形や円形に縦横比を維持してトリミングすることができます。

今回は、CSSで画像や写真を正方形や円形に縦横比を維持してトリミングする方法を解説します。

CSSで画像や写真を正方形に配置する方法

CSSで画像や写真を正方形に縦横比を維持してトリミングする場合は、「object-fit」プロパティを追記する必要があります。CSSでコンテンツ要素に「filter」プロパティを加え「置換要素」を適用します。
「filter」プロパティに記述する要素は、「contain」「cover」「fill」「none」「scale-down」などがあります。

「object-fit」プロパティの値
概要
contain 置換コンテンツは、縦横比を維持したまま、要素のコンテンツボックスに収まるように表示されます。
cover 置換コンテンツは、縦横比を維持したまま、要素のコンテンツボックス全体を埋めるように表示されます。
fill 置換コンテンツは、要素のコンテンツボックス全体を埋めるように表示されます。
none 置換コンテンツは、拡大縮小されずに表示されます。
scale-down コンテンツは「none」または「contain」を指定したかのようにサイズが決められ、オブジェクトの実際のサイズが小さい方を優先します。
初期画像

1.「contain」の値を使って切り抜かずにリサイズして配置する方法

CSSで画像や写真を切り抜かずにリサイズして配置する場合は、「object-fit」プロパティに「contain」の値を指定することで実装ができます。

画像(切り抜かずにリサイズ)
htmlコード

※高さを「auto」に変更すれば上下の余白は無くなります。

<div class="box2"><img src="/img/test.jpg"></div>
cssコード
.box2 {
  display: flex;
  justify-content: center; /* 水平方向にセンターに配置 */
  align-items: center;
  margin:0 auto 5%;
}
.box2 img{
  width: 200px;
  height: 200px;
  object-fit: contain;
}

2.「cover」の値を使って正方形にリサイズして配置する方法

CSSで画像や写真を正方形にリサイズして配置する場合は、「object-fit」プロパティに「cover」の値を指定することで実装ができます。

画像(正方形にリサイズ)
htmlコード
<div class="box3"><img src="/img/test.jpg"></div>
cssコード
.box3 {
  display: flex;
  justify-content: center; /* 水平方向にセンターに配置 */
  align-items: center;
  margin:0 auto 5%;
}
.box3 img{
  width: 200px;
  height: 200px;
  object-fit: cover;
}

3.「fill」の値を使ってコンテンツ要素全体に配置する方法

CSSで画像や写真をコンテンツ要素全体に配置する場合は、「object-fit」プロパティに「fill」の値を指定することで実装ができます。

画像(コンテンツ要素全体)
htmlコード
<div class="box4"><img src="/img/test.jpg"></div>
cssコード
.box4 {
  display: flex;
  justify-content: center; /* 水平方向にセンターに配置 */
  align-items: center;
  margin:0 auto 5%;
}
.box4 img{
  width: 200px;
  height: 200px;
  object-fit: fill;
}

4.「none」の値を使ってリサイズせず切り抜いて配置する方法

CSSで画像や写真をリサイズせず切り抜いて配置する場合は、「object-fit」プロパティに「none」の値を指定することで実装ができます。

画像(リサイズせず切り抜く)
htmlコード
<div class="box5"><img src="/img/test.jpg"></div>
cssコード
.box5 {
  display: flex;
  justify-content: center; /* 水平方向にセンターに配置 */
  align-items: center;
  margin:0 auto 5%;
}
.box5 img{
  width: 200px;
  height: 200px;
  object-fit: none;
}

5.「scale-down」の値を使って「none」または「contain」の小さい方を優先に配置する方法

CSSで画像や写真を「none」または「contain」の小さい方を優先に配置する場合は、「scale-down」プロパティに「scale-down」の値を指定することで実装ができます。

画像(「none」または「contain」の小さい方を優先)
htmlコード
<div class="box6"><img src="/img/test.jpg"></div>
cssコード
.box6 {
  display: flex;
  justify-content: center; /* 水平方向にセンターに配置 */
  align-items: center;
  margin:0 auto 5%;
}
.box6 img{
  width: 200px;
  height: 200px;
  object-fit: scale-down;
}

CSSで画像や写真を円形に配置する方法

CSSで画像や写真を円形に縦横比を維持してトリミングする場合は、「object-fit」プロパティを追記する必要があります。CSSでコンテンツ要素に「filter」プロパティを加え「置換要素」を適用します。
「filter」プロパティに記述する要素は、「contain」「cover」「fill」「none」「scale-down」などがあります。

「object-fit」プロパティの値
概要
contain 置換コンテンツは、縦横比を維持したまま、要素のコンテンツボックスに収まるように表示されます。
cover 置換コンテンツは、縦横比を維持したまま、要素のコンテンツボックス全体を埋めるように表示されます。
fill 置換コンテンツは、要素のコンテンツボックス全体を埋めるように表示されます。
none 置換コンテンツは、拡大縮小されずに表示されます。
scale-down コンテンツは「none」または「contain」を指定したかのようにサイズが決められ、オブジェクトの実際のサイズが小さい方を優先します。
初期画像

1.「contain」の値を使って切り抜かずにリサイズして配置する方法

CSSで画像や写真を切り抜かずにリサイズして配置する場合は、「object-fit」プロパティに「contain」の値を指定することで実装ができます。

画像(切り抜かずにリサイズ)
htmlコード

※高さを「auto」に変更すれば上下の余白は無くなります。

<div class="box8"><img src="/img/test.jpg"></div>
cssコード
.box8 {
  display: flex;
  justify-content: center; /* 水平方向にセンターに配置 */
  align-items: center;
  margin:0 auto 5%;
}
.box8 img{
  width: 200px;
  height: 200px;
  object-fit: contain;
  border-radius:50%;
}

2.「cover」の値を使って円形にリサイズして配置する方法

CSSで画像や写真を正方形にリサイズして配置する場合は、「object-fit」プロパティに「cover」の値を指定することで実装ができます。

画像(円形にリサイズ)
htmlコード
<div class="box9"><img src="/img/test.jpg"></div>
cssコード
.box9 {
  display: flex;
  justify-content: center; /* 水平方向にセンターに配置 */
  align-items: center;
  margin:0 auto 5%;
}
.box9 img{
  width: 200px;
  height: 200px;
  object-fit: cover;
  border-radius:50%;
}

3.「fill」の値を使ってコンテンツ要素全体に配置する方法

CSSで画像や写真をコンテンツ要素全体に配置する場合は、「object-fit」プロパティに「fill」の値を指定することで実装ができます。

画像(コンテンツ要素全体)
htmlコード
<div class="box10"><img src="/img/test.jpg"></div>
cssコード
.box10 {
  display: flex;
  justify-content: center; /* 水平方向にセンターに配置 */
  align-items: center;
  margin:0 auto 5%;
}
.box10 img{
  width: 200px;
  height: 200px;
  object-fit: fill;
  border-radius:50%;
}

4.「none」の値を使ってリサイズせず切り抜いて配置する方法

CSSで画像や写真をリサイズせず切り抜いて配置する場合は、「object-fit」プロパティに「none」の値を指定することで実装ができます。

画像(リサイズせず切り抜く)
htmlコード
<div class="box11"><img src="/img/test.jpg"></div>
cssコード
.box11 {
  display: flex;
  justify-content: center; /* 水平方向にセンターに配置 */
  align-items: center;
  margin:0 auto 5%;
}
.box11 img{
  width: 200px;
  height: 200px;
  object-fit: none;
  border-radius:50%;
}

5.「scale-down」の値を使って「none」または「contain」の小さい方を優先に配置する方法

CSSで画像や写真を「none」または「contain」の小さい方を優先に配置する場合は、「scale-down」プロパティに「scale-down」の値を指定することで実装ができます。

画像(「none」または「contain」の小さい方を優先)
htmlコード
<div class="box12"><img src="/img/test.jpg"></div>
cssコード
.box12 {
  display: flex;
  justify-content: center; /* 水平方向にセンターに配置 */
  align-items: center;
  margin:0 auto 5%;
}
.box12 img{
  width: 200px;
  height: 200px;
  object-fit: scale-down;
  border-radius:50%;
}

まとめ

CSSを使って画像や写真を正方形や円形に縦横比を維持してトリミングする方法をご紹介させて頂きました。
正方形にトリミングする際には「object-fit: cover;」を使用し、円形にトリミングする際には「border-radius: 50%;」を使用します。
これらのテクニックを活用して、魅力的な画像をウェブページに適切に配置してください。