レッスン6:レスポンシブデザイン入門
📖 導入 — スマホで見たらレイアウトが崩れた!
自分で作ったページをスマホで開いたら、文字が小さすぎて読めなかったり、横にはみ出してしまったりした経験はありませんか?画面の大きさに合わせてレイアウトを自動で調整するデザインを レスポンシブデザイン といいます。今やウェブの閲覧はスマホが主流です。このレッスンでその基本を身につけましょう!
📝 レスポンシブデザインの書き方
<meta name="viewport">
HTMLの <head> に必ずこの1行を書きます。これがないと、スマホでもPC用の幅でページが表示されてしまいます。
<meta name="viewport" content="width=device-width, initial-scale=1.0"> メディアクエリ:@media
画面の幅に応じてCSSを切り替えることができます。
/* 通常のスタイル(PC向け) */
.card {
width: 300px;
}
/* 画面幅が 600px 以下のとき(スマホ向け) */
@media (max-width: 600px) {
.card {
width: 100%;
}
} | 条件 | 意味 |
|---|---|
max-width: 600px | 幅が600px以下のとき(スマホ向け) |
min-width: 768px | 幅が768px以上のとき(タブレット・PC向け) |
スマホファーストの考え方
プロの現場では「スマホ向けのスタイルを先に書き、PC向けを後から追加する」スマホファーストという書き方が主流です。
/* スマホ向け(基本スタイル) */
.card-list {
display: flex;
flex-direction: column;
}
/* PC向け(幅が広いときだけ横並びにする) */
@media (min-width: 768px) {
.card-list {
flex-direction: row;
flex-wrap: wrap;
}
} 💻 やってみよう!
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>レスポンシブの練習</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header class="header">
<h1>わたしのプロフィール</h1>
</header>
<div class="card-list">
<div class="card">趣味:ゲーム</div>
<div class="card">好きな食べ物:ラーメン</div>
<div class="card">好きな教科:数学</div>
</div>
</body>
</html> * { box-sizing: border-box; }
body {
margin: 0;
font-family: sans-serif;
background-color: #f5f5f5;
}
.header {
background-color: #3a86ff;
color: white;
padding: 16px 24px;
text-align: center;
}
/* スマホ向け:縦並び */
.card-list {
display: flex;
flex-direction: column;
gap: 16px;
padding: 24px;
}
.card {
background-color: #ffffff;
border: 1px solid #dddddd;
border-radius: 8px;
padding: 20px;
}
/* PC向け:横並び */
@media (min-width: 768px) {
.card-list {
flex-direction: row;
flex-wrap: wrap;
}
.card {
width: calc(33% - 12px);
}
} ブラウザのウィンドウ幅を広げたり狭めたりして、カードの並び方が変わることを確認しましょう。スマホ表示は開発者ツール(F12)の「デバイスモード」ボタンで確認できます!
📌 まとめ
- ✅
<meta name="viewport">はスマホ対応に必須。<head>に必ず書く - ✅
@media (max-width: 〇〇px)で画面幅に応じてCSSを切り替えられる - ✅ スマホ向けを先に書き、PC向けを
@media (min-width: ...)で追加するスマホファーストが現代の主流
🚀 次のコースへ
CSSコースはこれで完了です!次はJavaScriptコースで、ページに動きをつける方法を学びましょう! 🎉
🎉 CSSコース完了!次は JavaScript でページに動きをつけよう。JavaScriptコースへ →
🔍 もっと調べてみよう:「CSS レスポンシブ メディアクエリ」で検索してみよう。わからないことはどんどん検索する習慣をつけよう!
JavaScriptコースを始める →