CSSのレスポンシブ対応!初心者でもわかるサイズを可変にする方法(%・vw・media query)
生徒
「先生、スマホで見ると文字や画像が小さすぎたり、大きすぎてはみ出したりすることがあるんですけど、CSSで調整できますか?」
先生
「はい、それはレスポンシブ対応といって、画面の大きさに合わせてサイズを変える仕組みを作ることができます。CSSでは%やvw、そしてmedia queryを使う方法がありますよ。」
生徒
「なるほど!それぞれどういう意味なんですか?」
先生
「順番にわかりやすく解説していきますね。」
1. %(パーセント)を使った相対的なサイズ指定
CSSで%(パーセント)を使うと、その要素を包んでいる「親要素(外側の箱)」の大きさを基準にしてサイズが決まります。
例えば、親要素の幅が300pxのとき、子要素に「width: 50%;」と指定すると、その幅は150pxになります。プログラミング未経験の方には、「マトリョーシカ」や「入れ物」をイメージすると分かりやすいでしょう。外側の箱の大きさが変われば、中に入っている要素もその比率を保ったまま一緒に伸び縮みします。
この指定方法の最大のメリットは、画面サイズが変わって親要素の幅が動的に変化しても、レイアウトのバランス(比率)が崩れないことです。特に、横に並べるメニューやコンテンツの幅を調整する際に非常によく使われます。
<style>
/* 親要素(グレーの大きな箱) */
.parent-box {
width: 100%; /* 画面いっぱいに広がる */
background-color: #f0f0f0;
padding: 20px;
box-sizing: border-box;
}
/* 子要素(緑色の可変する箱) */
.child-box {
width: 60%; /* 親要素の幅に対して60%の大きさに自動調整 */
background-color: #90ee90;
padding: 15px;
border: 2px solid #2e8b57;
text-align: center;
}
</style>
<div class="parent-box">
<div class="child-box">
親要素の60%の幅です
</div>
</div>
ブラウザ表示
上記の例では、外側のグレーの箱(親要素)の幅が変わると、中の緑色の箱も常にその6割の長さをキープします。 「固定のpx(ピクセル)」で指定してしまうと画面からはみ出す原因になりますが、%を使うことで、どんなデバイスでも「ちょうどいい比率」を保つことができるようになります。
2. vwを使った画面幅に応じたサイズ指定
vwは「viewport width(ビューポート幅)」の略で、画面全体の幅を基準にサイズを決める単位です。
1vwは画面幅の1%にあたります。つまり幅を「50vw」とすれば、常に画面幅の半分を占めるサイズになります。
%との違いは、%が「親要素」を基準にするのに対して、vwは「画面全体」が基準になるという点です。
<style>
.vw-box {
width: 50vw;
background-color: lightcoral;
padding: 10px;
}
</style>
<div class="vw-box">画面幅の50%で表示されます</div>
ブラウザ表示
3. media queryを使った画面ごとのレイアウト調整
media query(メディアクエリ)は、画面の大きさに応じてCSSを切り替える仕組みです。例えば「スマホでは1カラム表示、パソコンでは2カラム表示」というような調整が可能です。
簡単にいうと、服のサイズをS・M・Lと変えるように、画面サイズごとにスタイルを着替えさせるイメージです。
<style>
.responsive-box {
background-color: lightblue;
padding: 10px;
}
/* 画面幅が600px以下のとき */
@media (max-width: 600px) {
.responsive-box {
background-color: lightpink;
font-size: 14px;
}
}
/* 画面幅が601px以上のとき */
@media (min-width: 601px) {
.responsive-box {
background-color: lightgreen;
font-size: 20px;
}
}
</style>
<div class="responsive-box">画面の幅によって色や文字サイズが変わります</div>
ブラウザ表示
4. %・vw・media queryの使い分け
実際のWeb制作では、それぞれの特性を理解して使い分けることが大切です。
- %は親要素基準なので、レイアウト内で相対的に調整したいときに便利
- vwは画面全体基準なので、大きな背景や横幅いっぱいに広がる要素に適している
- media queryは、スマホ・タブレット・PCなどデバイスごとにレイアウトを切り替えるときに必須
例えば、スマホでは文字サイズを小さめにし、PCでは大きめにするといった調整もmedia queryで簡単に実現できます。これらを組み合わせることで、ユーザーにとって見やすく使いやすいレスポンシブデザインを作ることができます。
5. 実務でよくあるレスポンシブ対応の例
初心者でも実際に役立つ場面をいくつか紹介します。
- 画像をwidth: 100%にして、親の幅に合わせて縮小表示する
- ボタンをmin-widthで最低限押しやすいサイズにして、vwで可変対応する
- 記事本文をmax-widthで広がりすぎないようにして、media queryでスマホ時は文字サイズを小さめに調整する
このように、%・vw・media queryを組み合わせれば、どんなデバイスでも快適に閲覧できるレスポンシブデザインが実現できます。
【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー
「魅せる力」をコードで実現。CSS3でモダンWebデザインのプロトタイピングを。
本講座では、単に色を変えるだけではなく、「ユーザーを迷わせないUIデザイン」と「崩れないレイアウト設計」の本質を学びます。最新のCSS3とモダンなレイアウト手法を通じて、プロの現場で通用する「美しさと機能性を両立した実装力」を最短距離で習得します。
具体的なワークショップ内容と環境
【つくるもの】
HTMLで作成した骨組みに対し、商用サイトでも採用される「スタイリッシュなカード型UI」や「レスポンシブなナビゲーション」を構築します。色の選定基準や余白(ホワイトスペース)の黄金比など、デザインの理論をコードに落とし込む工程を体験してください。
【開発環境】
フロントエンド開発の標準であるVisual Studio Code (VS Code)を継続使用。CSSの記述を効率化するプラグインや、ブラウザのデベロッパーツール(検証機能)を駆使して、リアルタイムでデザインを微調整するプロのワークフローを再現します。
この60分で得られる3つの技術資産
要素の横並びや中央揃えを自由自在に操り、どんなデバイスでも崩れないレスポンシブな配置術を完全理解します。
後から修正しやすい「壊れにくいコード」の書き方を伝授。プロの現場で必須となる命名規則の考え方を学びます。
画像の最適化や軽量な装飾技法など、ページの表示速度を落とさずに高級感のある演出を行うテクニックを習得します。
※本講座は、HTMLの基礎を終えた後のステップアップ講座です。Webデザイナー、UIデザイナー、フロントエンドエンジニアへの道を切り開く「魅せる技術」を、モクモク独自のパーソナル指導で着実に定着させます。
リラックスしながら、学ぶことが大切です。しっかりと基礎を理解しましょう!
各回少人数・マンツーマン形式で徹底サポート
このセミナーの詳細・お申し込みはこちら