もくじ
CSSのみで画像トリミングを行う方法を紹介します。サムネイル画像のサイズがバラバラでも、奇麗に整えることができます。
内接トリミング(内接リサイズ)・外接トリミング(外接リサイズ)とは
内接トリミング(内接リサイズ)
内接トリミング(内接リサイズ)は、画像内の対象や領域に外接する矩形(内接矩形)を計算し、その矩形内の領域を画像から切り取る手法です。
以下の画像のように、画像全体が「.photo-box」の枠内に収まるように調整されます。

外接トリミング(外接リサイズ)
外接トリミング(外接リサイズ)は、画像内の対象や領域を包括する最小の矩形(外接矩形)を計算し、その矩形で画像をトリミング(切り取る)する手法です。
以下の画像のように、短辺が「.photo-box」の枠に収まるように調整され、「.photo-box」の枠からはみ出した部分は切り取られます。

【サンプル】横長画像の内接トリミングと外接トリミング
以下の横長画像を正方形の枠で内接トリミングと外接トリミングしてみます。

内接トリミング

外接トリミング

【サンプル】縦長画像の内接トリミングと外接トリミング
以下の縦長画像を正方形の枠で内接トリミングと外接トリミングしてみます。

内接トリミング

外接トリミング

【実装コード】内接トリミング(内接リサイズ) HTML・CSS
HTML
Copy
<div class="photo-box -inscribed">
<img src="image URL" alt="サンプル">
</div>
CSS
Copy
.photo-box {
box-sizing: border-box;
width: 300px;
height: 300px;
display: flex;
justify-content: center;
align-items: center;
border: solid 2px #ccc;
}
.photo-box img {
vertical-align: top;
}
.photo-box.-inscribed img {
width: 100%;
height: 100%;
object-fit: contain;
}
【実装コード】外接トリミング(外接リサイズ) HTML・CSS
HTML
Copy
<div class="photo-box -circumscribed">
<img src="image URL" alt="サンプル">
</div>
CSS
Copy
.photo-box {
box-sizing: border-box;
width: 300px;
height: 300px;
display: flex;
justify-content: center;
align-items: center;
border: solid 2px #ccc;
}
.photo-box img {
vertical-align: top;
}
.photo-box.-circumscribed img {
width: 100%;
height: 100%;
object-fit: cover;
}
HTML・CSS入門におすすめの1冊
リンク
もみじ
Web製作未経験でも読みやすい構成で、初学者でも安心して学習することができます。
実践的な内容を学ぶことができ解説も丁寧で分かりやすく、基礎的な内容はこの1冊で学ぶことができます。