2026年8月6日

2026年8月6日

WordPressのCSS aspect-ratioを使う方法

はじめに

この記事では、Webページにおける要素のアスペクト比を指定するためにCSSのaspect-ratioプロパティを使用する方法について説明します。特にWordPressで画像やビデオなどのメディア要素を適切なサイズと形状で表示させるための手法を紹介します。

症状・背景

このテーマが必要になる主な場面:

  • サムネイル画像が歪んでしまう
  • ビデオプレイヤーのアスペクト比を固定したい
  • アイキャッチ画像のサイズを均一に保つ
  • 横長や縦長の画像を表示する際、余白が不自然になる

手順・設定方法

ステップ1: WordPressテーマ内のスタイルシートにaspect-ratioプロパティを追加

# テーマのスタイルファイル(style.css)を開く
vim wp-content/themes/your-theme/style.css

# 画像要素に対してaspect-ratioプロパティを設定する
img.featured-image {
    aspect-ratio: 16 / 9;
}

ステップ2: 特定のクラスやIDに適用するためのCSSセレクタを作成

# ビデオプレイヤー要素に対してaspect-ratioプロパティを設定する
iframe.video-player {
    aspect-ratio: 4 / 3;
}

ステップ3: クライアントサイドJavaScriptを使用して動的にアスペクト比を調整

# JavaScriptで画像のクラスを追加し、aspect-ratioプロパティを設定する
document.addEventListener('DOMContentLoaded', function() {
    var images = document.querySelectorAll('.dynamic-image');
    images.forEach(function(image) {
        image.style.aspectRatio = '16 / 9';
    });
});

スtep4: aspect-ratioの値を変数化して再利用可能にする

# CSS内で変数としてアスペクト比を定義する
:root {
    --blog-post-thumbnail-aspect-ratio: 2 / 3;
}

/* ブログ投稿サムネイル画像に適用 */
img.blog-post-thumbnail {
    aspect-ratio: var(--blog-post-thumbnail-aspect-ratio);
}

注意事項

  • 現在、すべてのブラウザで完全なサポートが得られているわけではないので、polyfillやバックアップアプローチを使用することを検討してください。
  • aspect-ratioプロパティは、要素のコンテンツ領域の幅と高さの比を指定します。これはブロックレベル要素に対して最適化されています。
  • 絶対的な寸法(ピクセル)ではなく、アスペクト比を使用することで、異なるデバイスや画面サイズで一貫した表示が可能になります。

まとめ

1. CSS変数: ブラウザのサポート状況を考慮し、必要に応じてpolyfillを使用する。

2. 動的設定: JavaScriptを使用して画像やビデオプレイヤーのアスペクト比を動的に調整します。

3. 再利用性: CSSセレクタと変数を利用して、異なる要素間でアスペクト比を簡単に共有できます。

4. テスト: ブラウザ互換性と視覚的な品質を確認するために、実際のページ上でテストを行います。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ