デザインと心理学の学習メモブログ

CSSで画像サイズを合わせる方法(画像サイズを揃える)

記事内に広告が含まれています。

CSSで画像サイズを合わせる方法(画像サイズを揃える)

ウェブサイトのデザインにおいて、画像のサイズを統一することは見た目の美しさと一貫性を保つために非常に重要です。

特にグリッドやカード型のレイアウトでは、画像サイズが揃っていないと全体の印象が乱れてしまいます。

どうすれば、CSSで画像サイズを合わせるのか?

この記事では、CSSを使って画像サイズを効果的に揃える方法を解説します。

CSSで画像サイズ 合わせる:基本的なアプローチ

1. width と height プロパティを使うサイズの変更

最も単純な方法は、画像に固定の幅と高さを指定することです。

CSS
img {
  width: 300px;
  height: 200px;
}

ただし、この方法では画像の縦横比が元の比率と異なる場合に歪んでしまうという問題があります。

2. object-fit プロパティを活用する

object-fit プロパティを使うと、画像の縦横比を保ちながらサイズを揃えることができます。

CSS
img {
  width: 300px;
  height: 200px;
  object-fit: cover;
}

object-fit には以下の値を設定できます。

  • cover:
    画像が枠を埋めるようにサイズ調整され、はみ出した部分はトリミングされます
    例:サムネイル、ヘッダー画像、ブログのアイキャッチ画像
  • contain:
    画像全体が見えるようにサイズ調整され、余白ができる場合があります
    例:商品画像・アイコンなど「全体を見せたい」場合
  • fill:
    画像が枠に合わせて引き伸ばされます(縦横比が変わる可能性があります)
    例:背景画像っぽく使う(歪んでもいい画像)
  • none:
    枠より大きければはみ出す、小さければ空く。画像のサイズ調整を行いません。
    例:高画質の検証用表示
  • scale-down:
    nonecontain のうち、より小さい方のサイズになります

3. object-position でトリミング位置を調整する

object-fit: cover を使用する場合、object-position プロパティでトリミングの中心位置を指定できます。

CSS
img {
  width: 300px;
  height: 200px;
  object-fit: cover;
  object-position: center; /* デフォルト値 */
}

顔などの重要な部分が中央にない場合は、以下のように位置を調整できます。

CSS
img {
  object-position: top center; /* 上中央を中心にトリミング */
}

CSSで画像サイズ 合わせる:応用テクニック

1. 縮小してもアスペクト比を維持する方法

固定のアスペクト比を維持したい場合は、padding-topやpadding-bottomを使った方法が効果的です。

CSS
.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 プロパティを使うこともできます。

CSS
.image-container {
  width: 100%;
  aspect-ratio: 4/3;
  overflow: hidden;
}

.image-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

2. レスポンシブ対応:画像サイズの自動調整

さまざまな画面サイズに対応するためには、固定サイズではなく相対的なサイズを指定することが重要です。

CSS
.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で画像サイズ 合わせる:画像ギャラリーのサンプルコード

以下は、サイズの異なる画像を美しく揃えたギャラリーのサンプルコードです。

HTML
<div class="gallery">
  <div class="gallery-item">
    <img src="image1.jpg" alt="説明文">
  </div>
  <div class="gallery-item">
    <img src="image2.jpg" alt="説明文">
  </div>
  <!-- 他の画像アイテム -->
</div>
CSS
.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で画像サイズを揃える方法をいくつか紹介しました。

  1. 基本的な幅と高さの指定
  2. object-fit プロパティを使って縦横比を維持しながらトリミング
  3. アスペクト比を固定するテクニック
  4. レスポンシブデザインへの対応

適切な方法を選択することで、さまざまなサイズやアスペクト比の画像を含んだ魅力的なウェブサイトを作成できます。

特に最近のモダンCSSでは、object-fitaspect-ratioなどのプロパティを活用することで、より簡単にプロフェッショナルなデザインを実現できるようになっています。