カテゴリ: CSS 更新日: 2026/02/05

CSSのレスポンシブ対応!初心者でもわかるサイズを可変にする方法(%・vw・media query)

レスポンシブ対応でサイズを可変にする方法(%・vw・media query)
レスポンシブ対応でサイズを可変にする方法(%・vw・media query)

先生と生徒の会話形式で理解しよう

生徒

「先生、スマホで見ると文字や画像が小さすぎたり、大きすぎてはみ出したりすることがあるんですけど、CSSで調整できますか?」

先生

「はい、それはレスポンシブ対応といって、画面の大きさに合わせてサイズを変える仕組みを作ることができます。CSSでは%やvw、そしてmedia queryを使う方法がありますよ。」

生徒

「なるほど!それぞれどういう意味なんですか?」

先生

「順番にわかりやすく解説していきますね。」

1. %(パーセント)を使った相対的なサイズ指定

1. %(パーセント)を使った相対的なサイズ指定
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を使った画面幅に応じたサイズ指定

2. vwを使った画面幅に応じたサイズ指定
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を使った画面ごとのレイアウト調整

3. media queryを使った画面ごとのレイアウト調整
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の使い分け

4. %・vw・media queryの使い分け
4. %・vw・media queryの使い分け

実際のWeb制作では、それぞれの特性を理解して使い分けることが大切です。

  • %は親要素基準なので、レイアウト内で相対的に調整したいときに便利
  • vwは画面全体基準なので、大きな背景や横幅いっぱいに広がる要素に適している
  • media queryは、スマホ・タブレット・PCなどデバイスごとにレイアウトを切り替えるときに必須

例えば、スマホでは文字サイズを小さめにし、PCでは大きめにするといった調整もmedia queryで簡単に実現できます。これらを組み合わせることで、ユーザーにとって見やすく使いやすいレスポンシブデザインを作ることができます。

5. 実務でよくあるレスポンシブ対応の例

5. 実務でよくあるレスポンシブ対応の例
5. 実務でよくあるレスポンシブ対応の例

初心者でも実際に役立つ場面をいくつか紹介します。

  • 画像をwidth: 100%にして、親の幅に合わせて縮小表示する
  • ボタンをmin-widthで最低限押しやすいサイズにして、vwで可変対応する
  • 記事本文をmax-widthで広がりすぎないようにして、media queryでスマホ時は文字サイズを小さめに調整する

このように、%・vw・media queryを組み合わせれば、どんなデバイスでも快適に閲覧できるレスポンシブデザインが実現できます。

2026年最新 スキルアップ・実践セミナー

【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー

「魅せる力」をコードで実現。CSS3でモダンWebデザインのプロトタイピングを。

本講座では、単に色を変えるだけではなく、「ユーザーを迷わせないUIデザイン」「崩れないレイアウト設計」の本質を学びます。最新のCSS3とモダンなレイアウト手法を通じて、プロの現場で通用する「美しさと機能性を両立した実装力」を最短距離で習得します。

具体的なワークショップ内容と環境

【つくるもの】
HTMLで作成した骨組みに対し、商用サイトでも採用される「スタイリッシュなカード型UI」や「レスポンシブなナビゲーション」を構築します。色の選定基準や余白(ホワイトスペース)の黄金比など、デザインの理論をコードに落とし込む工程を体験してください。

【開発環境】
フロントエンド開発の標準であるVisual Studio Code (VS Code)を継続使用。CSSの記述を効率化するプラグインや、ブラウザのデベロッパーツール(検証機能)を駆使して、リアルタイムでデザインを微調整するプロのワークフローを再現します。

この60分で得られる3つの技術資産

1. 現代のデファクトスタンダード「Flexbox」

要素の横並びや中央揃えを自由自在に操り、どんなデバイスでも崩れないレスポンシブな配置術を完全理解します。

2. メンテナンス性を高めるCSS設計の基礎

後から修正しやすい「壊れにくいコード」の書き方を伝授。プロの現場で必須となる命名規則の考え方を学びます。

3. パフォーマンスと美しさの両立

画像の最適化や軽量な装飾技法など、ページの表示速度を落とさずに高級感のある演出を行うテクニックを習得します。

※本講座は、HTMLの基礎を終えた後のステップアップ講座です。Webデザイナー、UIデザイナー、フロントエンドエンジニアへの道を切り開く「魅せる技術」を、モクモク独自のパーソナル指導で着実に定着させます。

【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー

リラックスしながら、学ぶことが大切です。しっかりと基礎を理解しましょう!

各回少人数・マンツーマン形式で徹底サポート

このセミナーの詳細・お申し込みはこちら
カテゴリの一覧へ
新着記事
New1
Bootstrap
Bootstrapドロップダウン完全入門!data-bs-toggle="dropdown"の仕組みとJSバンドルをやさしく解説
New2
CSS
CSSの!importantの使い方を完全ガイド!初心者向けに徹底解説
New3
CSS
CSSでインデント(字下げ)を設定する方法を完全ガイド!初心者でもわかるtext-indentの使い方
New4
HTML
HTMLのdivタグの役割とは?初心者でもわかるレイアウトで使う正しい場面
人気記事
No.1
Java&Spring記事人気No1
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.2
Java&Spring記事人気No2
Bootstrap
Bootstrap 5 と Tailwindの違いを比較:どっちを選ぶ?用途別の選び方を初心者向けに解説
No.3
Java&Spring記事人気No3
CSS
CSSのレスポンシブ新常識!メディアクエリとコンテナクエリの違いを徹底解説
No.4
Java&Spring記事人気No4
CSS
CSSの状態によるセレクタ完全ガイド!初心者でもわかる:checkedと:disabledの使い方
No.5
Java&Spring記事人気No5
Bootstrap
Bootstrap Iconsのライセンスと商用利用の注意点【著作権と表記を初心者向けに解説】
No.6
Java&Spring記事人気No6
HTML
HTMLのliタグとは?初心者でもわかるul・ol内での正しい役割を完全解説
No.7
Java&Spring記事人気No7
CSS
CSSで要素を消す方法を完全ガイド!display:noneとvisibility:hiddenの違い
No.8
Java&Spring記事人気No8
CSS
CSSでテキストの折り返しを完全解説!初心者でもわかる基本と注意点