ウェブサイトのデザインにおいて、画像のサイズを統一することは見た目の美しさと一貫性を保つために非常に重要です。
特にグリッドやカード型のレイアウトでは、画像サイズが揃っていないと全体の印象が乱れてしまいます。
どうすれば、CSSで画像サイズを合わせるのか?
この記事では、CSSを使って画像サイズを効果的に揃える方法を解説します。
Contents
CSSで画像サイズ 合わせる:基本的なアプローチ
1. width と height プロパティを使うサイズの変更
最も単純な方法は、画像に固定の幅と高さを指定することです。
img {
width: 300px;
height: 200px;
}
ただし、この方法では画像の縦横比が元の比率と異なる場合に歪んでしまうという問題があります。
2. object-fit プロパティを活用する
object-fit
プロパティを使うと、画像の縦横比を保ちながらサイズを揃えることができます。
img {
width: 300px;
height: 200px;
object-fit: cover;
}
object-fit
には以下の値を設定できます。
cover
:
画像が枠を埋めるようにサイズ調整され、はみ出した部分はトリミングされます
例:サムネイル、ヘッダー画像、ブログのアイキャッチ画像contain
:
画像全体が見えるようにサイズ調整され、余白ができる場合があります
例:商品画像・アイコンなど「全体を見せたい」場合fill
:
画像が枠に合わせて引き伸ばされます(縦横比が変わる可能性があります)
例:背景画像っぽく使う(歪んでもいい画像)none
:
枠より大きければはみ出す、小さければ空く。画像のサイズ調整を行いません。
例:高画質の検証用表示scale-down
:none
とcontain
のうち、より小さい方のサイズになります
3. object-position でトリミング位置を調整する
object-fit: cover
を使用する場合、object-position
プロパティでトリミングの中心位置を指定できます。
img {
width: 300px;
height: 200px;
object-fit: cover;
object-position: center; /* デフォルト値 */
}
顔などの重要な部分が中央にない場合は、以下のように位置を調整できます。
img {
object-position: top center; /* 上中央を中心にトリミング */
}
CSSで画像サイズ 合わせる:応用テクニック
1. 縮小してもアスペクト比を維持する方法
固定のアスペクト比を維持したい場合は、padding-topやpadding-bottomを使った方法が効果的です。
.image-container {
position: relative;
width: 100%;
padding-bottom: 75%; /* 4:3のアスペクト比 */
overflow: hidden;
}
.image-container img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
最新のCSSでは、aspect-ratio
プロパティを使うこともできます。
.image-container {
width: 100%;
aspect-ratio: 4/3;
overflow: hidden;
}
.image-container img {
width: 100%;
height: 100%;
object-fit: cover;
}
2. レスポンシブ対応:画像サイズの自動調整
さまざまな画面サイズに対応するためには、固定サイズではなく相対的なサイズを指定することが重要です。
.gallery {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
gap: 1rem;
}
.gallery-item {
aspect-ratio: 1/1; /* 正方形のアイテム */
overflow: hidden;
}
.gallery-item img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.3s ease;
}
/* ホバーエフェクト */
.gallery-item:hover img {
transform: scale(1.05);
}
CSSで画像サイズ 合わせる:画像ギャラリーのサンプルコード
以下は、サイズの異なる画像を美しく揃えたギャラリーのサンプルコードです。
<div class="gallery">
<div class="gallery-item">
<img src="image1.jpg" alt="説明文">
</div>
<div class="gallery-item">
<img src="image2.jpg" alt="説明文">
</div>
<!-- 他の画像アイテム -->
</div>
.gallery {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
gap: 16px;
}
.gallery-item {
aspect-ratio: 3/2;
overflow: hidden;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.gallery-item:hover {
transform: translateY(-5px);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}
.gallery-item img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.5s ease;
}
.gallery-item:hover img {
transform: scale(1.1);
}
/* レスポンシブ対応 */
@media (max-width: 768px) {
.gallery {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 480px) {
.gallery {
grid-template-columns: 1fr;
}
}
CSSで画像サイズ 合わせるのまとめ
CSSで画像サイズを揃える方法をいくつか紹介しました。
- 基本的な幅と高さの指定
object-fit
プロパティを使って縦横比を維持しながらトリミング- アスペクト比を固定するテクニック
- レスポンシブデザインへの対応
適切な方法を選択することで、さまざまなサイズやアスペクト比の画像を含んだ魅力的なウェブサイトを作成できます。
特に最近のモダンCSSでは、object-fit
やaspect-ratio
などのプロパティを活用することで、より簡単にプロフェッショナルなデザインを実現できるようになっています。