第4回: レスポンシブデザインの極意
この回の目標
- PC/スマホでレイアウトを切り替えられる
- ブレイクポイントを自分で設定できる
レスポンシブデザインとは?
レスポンシブデザインとは
画面サイズに合わせてレイアウトを変える仕組み
PC
タブレット
スマートフォン
レイアウトの変化
画面幅によってレイアウトは次のように変わります
- 横並び → 縦並び
- ナビゲーションの変化
- 文字サイズ調整
なぜレスポンシブが必要?
レスポンシブデザインで作成した場合
- 文字サイズが適切
- レイアウトが縦並び
- ボタンが押しやすい
レスポンシブデザインの実装
レスポンシブの仕組み
- HTMLは共通、CSSだけ切り替える
-
CSSは「PC・スマホ」等のデバイス指定ではなく、画面幅で切り替える
(1024px以上・768px以下・480px以下など)
PCデザイン
1024px〜
タブレットデザイン
768px〜1024px
スマホデザイン
375px〜428px
レスポンシブの実装方法
メディアクエリ:画面幅によってCSSを切り替える機能
@media (max-width: 768px) {
/* ここに適用させたいCSSを記述 */
}
→画面幅768px以下で適用
実際の例
h1 {
font-size: 36px;
}
@media (max-width: 768px) {
h1 {
font-size: 24px;
}
}
PC → 36px
スマホ(画面幅768px以下のとき) → 24px
min-width と max-width
max-width:◯px以下で適用
@media (max-width:768px)
min-width:◯px以上で適用
@media (min-width:768px)
まずはmax-widthだけ覚えればOK
ブレイクポイントについて
レイアウトが切り替わる画面幅のことをブレイクポイントと言う
PCレイアウト
↓
★ここで切り替え(768px以下)
↓
スマホレイアウト
→ブレイクポイントは「768px」となる
よく使うブレイクポイント
| PC | 1024px〜 |
|---|---|
| タブレット | 〜768px |
| スマホ | 〜480px |
ただし、絶対のルールではありません
レイアウトが崩れるタイミングで設定します。
レスポンシブ制作の基本手順
レスポンシブ制作は次の流れで行います
① PCレイアウト作成
② 画面を縮める
③ レイアウトが崩れる
④ メディアクエリで修正
Flexboxのレスポンシブ対応
Flexboxはレスポンシブと相性が良い
第3回で作った3カラムのカードをレスポンシブ化する
- PC:横並び
- スマホ:縦並び
実装
.three-column {
display: flex;
gap: 20px;
}
@media (max-width: 768px) {
.three-column {
flex-direction: column;
}
}
これだけで、PCでは横並び・スマホでは縦並びになります。
検証モードについて
検証モードを使えば、PCからもスマホのレイアウトを確認できる
chromeの場合
ページ上を右クリック→「検証」をクリック
レスポンシブでよくある調整
よく調整される要素
- 文字サイズ
- 余白
- 画像サイズ
- ボタンサイズ
- ナビゲーションの切り替え ※第8回で詳しくやります
実例
@media (max-width: 768px) {
h1 {
font-size: 24px;
}
.section {
margin: 30px 15px;
}
.button {
width: 100%;
padding: 16px;
}
}
ミニ課題
第3回で作った2カラムレイアウトを、 スマホでは縦並びに変更してください。
この回のまとめ
- レスポンシブは画面幅で考える
- メディアクエリで切り替える
- Flexboxはレスポンシブと相性が良い
- 文字・余白・ボタンは必ず調整する