Closed7
レスポンシブ対応まとめ

CSSの比較関数
複数の値を比較して値を計算する比較関数について紹介します。
レスポンシブ対応を行うときに便利です。
min()
「最小の値」 を適用する関数
width: min(100vw, 1200px);
/*
- `100vw` と `1200px` のうち、小さい方を適用。
- 画面幅が 1200px 未満のとき → `width: 100vw`;
- 画面幅が 1200px 以上のとき → `width: 1200px`;
*/
max()
「最大の値」 を適用する関数
width: max(100vw, 1200px);
/*
-`100vw` と `1200px` のうち、大きい方を適用
- 画面幅が 1200px 以上のとき → `width: 100vw`
- 画面幅が 100vw 以下のとき → `width: 1200px`
*/
clamp()
最小・理想・最大の範囲で値を調整する関数
width: clamp(300px,100vw,1200px);
/*
- 最小値 (`300px`) → これ以下にはならない
- 理想値 (`100vw`) → 300px以上1200px未満のとき適用される
- 最大値 (`1200px`) → これ以上にはならない
*/
用途
1. レスポンシブな幅の調整
/*
- 最小値 (300px) → 画面が狭くても 300px は確保。
- 理想値 (100vw) → 画面幅いっぱいを使う。
- 最大値 (1200px) → 画面が広くても 1200px 以上にはならない。
*/
width: clamp(300px, 100vw, 1200px);
- コンテンツ幅の制御:狭すぎず、広すぎない最適な幅を確保。
- レスポンシブデザイン:デスクトップでもモバイルでも適切なサイズを維持。
2. フォントサイズのスケーリング
/*
- 最小値 (16px) → 文字が小さくなりすぎない。
- 理想値 (2vw) → 画面幅に応じて拡大・縮小。
- 最大値 (24px) → 文字が大きくなりすぎない。
*/
font-size: clamp(16px, 2vw, 24px);
- 可読性の向上:小さい画面でも文字が読める。
- 自動調整:画面サイズに応じて適切なフォントサイズを適用。
参考
- 最適なclumpを求めてくれるサイト
- tailwindのCSS変数でclumpが定義できるライブラリ
- 以下から画像を引用

gridとflexの使い分け
- flex
- シンプルな横並び
- 要素の増減があり折り返しが想定されるレイアウト
- 両端揃えしたい場合
- grid
- タイル風レイアウト
- カードレイアウト
- アイテムの配置場所があらかじめ指定されているレイアウト

📌 レスポンシブデザインのベストプラクティス(完全版)
今までの会話をまとめつつ、さらに 意識すべきポイント や 適切な単位・関数の選び方 を整理しました。
🎯 1️⃣ レスポンシブデザインで意識するべきこと
📌 1. 文字サイズ
-
適切な単位:
clamp()
(最小・最大制御) - 理由: 小さい画面では縮小し、大きい画面では適切に拡大
font-size: clamp(0.8rem, 2vw, 1.5rem);
✅ 最小 0.8rem
,
✅ 推奨 2vw
(画面幅に応じてスケール)
✅ 最大 1.5rem
に抑える
📌 2. 要素の大きさ
-
適切な単位:
minmax()
(最小・最大制御) +%
やvw
- 理由: 画面サイズに適応させつつ、縮小しすぎないようにする
grid-template-columns: minmax(150px, 1fr);
✅ 最小 150px
,
✅ 最大で 1fr
(利用可能なスペースを活用)
gap
の適切な調整
📌 3. -
適切な単位:
clamp()
やcalc()
-
理由: 画面サイズによって
gap
を動的に変化させる
gap: clamp(0.5rem, 2vw, 2rem);
✅ 狭い画面では 0.5rem
,
✅ 大きい画面では 2rem
に拡大
padding
の適切な調整
📌 4. -
適切な単位:
clamp()
または%
- 理由: 画面サイズによって適切な余白を確保
padding: clamp(1rem, 3vw, 4rem);
✅ 最小 1rem
,
✅ 通常 3vw
(画面サイズ依存),
✅ 最大 4rem
width
/ height
の適切な設定
📌 5. -
適切な単位:
%
/vw
/vh
- 理由: 画面に適応しつつ、可変に対応する
width: 100%;
height: auto;
max-width: 1200px; /* PC では最大1200px */
✅ 100%
で親要素にフィット
✅ 最大 1200px
に制限して極端に広がるのを防ぐ
grid
と flex
のベストプラクティス
🎯 2️⃣ どちらを使うべきか、どう組み合わせるべきかを整理。
grid
のベストプラクティス
📌 ✅ レスポンシブ対応に auto-fit
/ auto-fill
を活用
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
✅ 行・列の比率を調整
grid-template-columns: 1fr 2fr;
✅ コンテンツの最小・最大サイズを適切に設定
grid-template-columns: minmax(200px, 1fr);
✅ 縦方向の配置調整
align-items: center;
flex
のベストプラクティス
📌 ✅ 子要素を適切に縮小できるように min-width: 0;
を設定
.flex-item {
flex: 1;
min-width: 0;
}
✅ 折り返しを考慮して flex-wrap
を適用
display: flex;
flex-wrap: wrap;
✅ 要素間の gap
を適切に設定
gap: clamp(0.5rem, 2vw, 2rem);
✅ 中央揃えの簡単な指定
display: flex;
justify-content: center;
align-items: center;
🎯 3️⃣ まとめ
対象 | 単位・関数の選び方 | 理由 |
---|---|---|
フォントサイズ | clamp(0.8rem, 2vw, 1.5rem); |
画面サイズに応じた適切なスケール |
要素の幅 | minmax(150px, 1fr); |
最小値を確保しつつ、余白があれば拡張 |
gap | clamp(0.5rem, 2vw, 2rem); |
画面サイズに応じて調整 |
padding | clamp(1rem, 3vw, 4rem); |
余白を適切に確保 |
width | width: 100%; max-width: 1200px; |
画面に適応しつつ、最大値を設定 |
grid のカラム | repeat(auto-fit, minmax(150px, 1fr)); |
自動調整しながら適切な幅に |
flex の縮小 | min-width: 0; |
子要素が適切に縮小できるようにする |
中央揃え (flex ) |
justify-content: center; align-items: center; |
中央揃えを簡単に指定 |
折り返し (flex ) |
flex-wrap: wrap; |
はみ出しを防ぐ |
画像の調整 | object-fit: contain; |
画像が grid からはみ出ないように |
📌 これらを意識すれば、レスポンシブデザインの品質が向上!🎯
💡 適切な単位と関数 (clamp()
, minmax()
, %
) を使い分ける
💡 grid
と flex
を組み合わせて最適なレイアウトを実現
💡 はみ出し・折り返し・サイズ調整を意識したスタイル設計
このまとめを活用すれば、どんな画面サイズにも対応できる 柔軟なレスポンシブデザイン が実現できます! 🚀

tailwind ブレイクポイント

abdoluteとrelaitive
- absolute は デフォルトでは static 以外の親要素を探し、その親要素を基準 に配置される。
- 親要素にrelative をつけていないと absolute の基準が想定と違くなる可能性がある。

コンテナクエリ
- cqmでコンテナサイズに応じた相対的サイズを指定できる
- 親要素に
@container
をつけて子要素でcqw
、cqh
を使う
このスクラップは6ヶ月前にクローズされました