基本のキ:ビューポートとメディアクエリ

レスポンシブデザインの魔法のタネあかし!

前のページで、レスポンシブデザインは「魔法の洋服」みたいに、画面の大きさに合わせてWebサイトの見た目が変わる技術だって話をしたよね。 じゃあ、その魔法はどうやって実現しているんだろう?

実は、レスポンシブデザインの魔法には、大きく分けて2つの重要な「呪文」があるんだ。 それが、これから学ぶ「ビューポート」と「メディアクエリ」だよ! この2つを理解すれば、君もレスポンシブの魔法使いへの第一歩を踏み出せるぞ!

その1:ビューポート (Viewport) – ウェブサイトの「のぞき窓」を設定しよう!

まず一つ目の呪文は「ビューポート」。
ビューポートって言うのは、簡単に言うと、Webサイトがブラウザ(インターネットを見るソフト)の中で表示される「領域」のこと。まるで、君が部屋の中から外の景色を見る「窓」みたいなものだと考えてみて。

スマートフォンで見るときは小さな窓、パソコンで見るときは大きな窓になるよね。 この「窓の大きさ」をWebサイトに正しく教えてあげないと、Webサイトは自分がどれくらいの大きさで表示されているのか分からなくて、困っちゃうんだ。

PCの大きなビューポートのイメージ スマホの小さなビューポートのイメージ

なぜビューポート設定が必要なの?

昔のスマートフォンが出始めた頃、多くのWebサイトはパソコンの大きな画面用に作られていたんだ。 だから、スマホの小さな画面でそれらのサイトを見ようとすると、ブラウザは「えっ、こんな小さな画面じゃ全部表示できないよ!」となって、パソコン用のサイト全体をギューッと縮小して表示しようとしたんだ。

結果、文字は米粒みたいに小さくなって、指でピンチアウト(二本指で広げる操作)しないと読めない、なんてことがよくあった。これじゃ、とっても使いにくいよね。

そこで登場したのが、このビューポート設定! これをHTMLの `` タグの中に書いてあげることで、「このWebサイトは、見ているデバイスの画面幅に合わせて表示してね!勝手に縮小しないでね!」とブラウザに伝えることができるんだ。

ビューポートの設定方法:HTMLに一行追加するだけ!

ビューポートの設定は、HTMLファイルの `` タグの中に、次のような特別な `` (メタ) タグを一行書くだけでOKなんだ。 この教室のHTMLファイルにも、実はもう全部書いてあるよ!

<meta name="viewport" content="width=device-width, initial-scale=1.0">

この一行の呪文の意味を少し見てみよう。

この一行があるだけで、スマートフォンでWebサイトを見たときに、文字が適切な大きさで表示されたり、横スクロールしなくてもコンテンツが画面内に収まったりするようになる、レスポンシブデザインの「土台」ができるんだ。とっても大事な一行だね!


その2:メディアクエリ (Media Queries) – ウェブサイトの「変身の呪文」!

ビューポート設定でWebサイトの「のぞき窓」の大きさを正しく設定したら、次はいよいよ、その窓の大きさに合わせて見た目を変えるための呪文、「メディアクエリ」の出番だ!

メディアクエリは、CSS(Webサイトの見た目を作る言語)の機能の一つで、「もし、画面がこんな条件だったら、このCSSスタイルを適用してね」という「条件分岐」を可能にするんだ。

例えば、天気予報で「もし、明日の天気が晴れで、気温が25度以上なら、半袖Tシャツがおすすめです。もし雨なら、傘と長袖を持っていきましょう」とアドバイスされるのに似ているね。 メディアクエリも、画面の幅や高さ、向き(縦向きか横向きか)などの条件に応じて、Webサイトの見た目をガラリと変えることができる「変身の呪文」なんだ。

メディアクエリで何ができるの?

メディアクエリを使うと、具体的にこんなことができるよ。

まさに、レスポンシブデザインの「動き」や「変化」を作り出すための中心的な技術なんだ。

メディアクエリの基本的な書き方

メディアクエリは、CSSファイルの中にこんな風に書くよ。

/* 例:画面の幅が 600ピクセル以下の場合に適用されるスタイル */
@media screen and (max-width: 600px) {
  body {
    background-color: lightblue; /* 背景色を水色にする */
  }
  h1 {
    font-size: 1.5em; /* 見出しの文字を少し小さくする */
  }
  /* ここに、画面幅が600px以下の時だけ適用したいCSSを書く */
}

この呪文を分解してみよう!

この例だと、Webサイトを見ている画面の幅が600ピクセル以下だったら、body の背景色が水色になり、h1 タグの文字サイズが 1.5em になるんだ。もし画面幅が601ピクセル以上だったら、この { } の中のスタイルは無視されるよ。

さあ、メディアクエリで遊んでみよう!

下の箱は、メディアクエリを使って、ウィンドウの幅によって背景色やメッセージが変わるように作られているよ。 ブラウザのウィンドウの端をドラッグして、幅を変えてみて!どんな風に変わるかな?

この箱は、ウィンドウの幅に応じて変身するよ!

現在のウィンドウ幅: 測定中... px

このデモのCSSは、このHTMLファイルの上の方(<style>タグの中)に書いてあるから、興味があったら見てみてね! 違う幅の時に違うスタイルが適用されるように、いくつかのメディアクエリが設定されているのが分かるはずだよ。

まとめ:レスポンシブの基本はビューポートとメディアクエリ!

さあ、今日のレッスンはどうだったかな?

この2つの「呪文」を使いこなすことが、レスポンシブWebデザインをマスターするための大きなカギになるんだ。 最初は少し難しく感じるかもしれないけど、実際に手を動かしながら慣れていくのが一番!

次のページでは、このメディアクエリについて、もっと色々な条件の書き方や使い方を詳しく見ていくよ。 さらに強力な変身の呪文を覚えて、Webサイトを自由自在に操ろう!