幅・高さの指定

widthheightmax-widthmin-heightaspect-ratio

要素のサイズを制御するプロパティ群です。固定値・割合・ビューポート単位・コンテンツ依存など多彩な値を組み合わせてレスポンシブなレイアウトを構築します。

デモ:様々な width 値

width: 200px固定値(px)

width: 200px

width: 50%親要素の50%

width: 50%

width: 75%親要素の75%

width: 75%

width: 100%親要素の100%(デフォルトのブロック要素)

width: 100%

デモ:max-width / min-width

max-width: 300px(ウィンドウを広げても300pxまで)

width: 100% / max-width: 300px

min-width: 250px(コンテンツが少なくても250px確保)

短い

width: 100% + max-width: 600px(レスポンシブの基本)

モバイルでは全幅、デスクトップでは600px上限

デモ:height の指定方法

height: 60px

60px固定

height: 100px

100px固定

min-height: 60px

60px以上(コンテンツに応じて伸びる)

height: auto

コンテンツに合わせて高さが変わります(デフォルト)

auto(デフォルト)

比較:width 100% vs 100vw

観点width: 100%width: 100vw
基準親要素の幅ビューポート(ウィンドウ)の幅
スクロールバー含まない⚠️ スクロールバー幅を含む場合あり
ネスト時親の制約を受ける親の制約を無視して全幅
使いどころ通常のコンテンツ幅全画面ヒーロー・モーダル背景

NEWaspect-ratio(2021年〜)/ fit-content / min-content / max-content

aspect-ratio は幅に対して自動的に高さを計算します。16:9の動画、1:1のアバターなどに最適です。

aspect-ratio: 1 / 1

正方形

aspect-ratio: 16 / 9

16:9 動画比率

aspect-ratio: 4 / 3

4:3

コンテンツ依存サイズ(fit-content / min-content / max-content)

width: fit-content(コンテンツぴったり)
min-content
width: max-content(折り返しなし最大幅)
/* aspect-ratio */
.video-container {
  width: 100%;
  aspect-ratio: 16 / 9; /* 高さを自動計算 */
}

/* コンテンツ依存の幅 */
.badge { width: fit-content; }  /* コンテンツぴったり */
.nowrap { width: max-content; } /* 折り返しなし */
.wrap { width: min-content; }   /* 最小折り返し幅 */

/* 論理プロパティ */
.box {
  inline-size: 300px;  /* width(横書き時) */
  block-size: 200px;   /* height(横書き時) */
}

コード例

/* 基本的なサイズ指定 */
.element {
  width: 300px;           /* 固定値 */
  width: 50%;             /* 親要素の割合 */
  width: 100vw;           /* ビューポート幅 */
  width: auto;            /* デフォルト(コンテンツ/ブロックに応じる) */
  height: 200px;
  height: 100vh;          /* ビューポートの高さ */
  height: 100svh;         /* Small Viewport Height(モバイル対応)*/
}

/* 最大・最小サイズ */
.responsive {
  width: 100%;
  max-width: 1200px;      /* デスクトップで上限 */
  min-height: 300px;      /* 最低限の高さを確保 */
}

/* 縦横比 */
.thumbnail {
  width: 100%;
  aspect-ratio: 16 / 9;  /* 幅に合わせて高さを自動計算 */
  object-fit: cover;
}

/* コンテンツ依存 */
.tag {
  width: fit-content;     /* ラベルやバッジに */
  padding: 4px 12px;
}

🤖 AIプロンプトテンプレート

CSSのwidth・heightプロパティを使ったサイズ指定の実装例をReact + Tailwind CSSで作成してください。

要件:
- px / % / vw / vhなど様々な単位のwidthを視覚的に比較できるデモ
- max-width / min-width / max-height / min-heightを使ったレスポンシブサイズ制御の実装
- width: 100% + max-width: 1200px によるコンテナレイアウトの実装パターン
- aspect-ratioを使った16:9動画プレースホルダー・1:1アバターの実装
- fit-content / min-content / max-content の違いを比較するデモ
- 100vh vs 100svh(モバイルのアドレスバー対応)の違いを説明するデモ

⚠️ このプロンプトはあくまでたたき台です。AIの回答はモデルやバージョン、会話の文脈によって毎回異なります。意図通りに動かない場合は、条件を追記・修正してお使いください。