CSSメニューをレスポンシブ対応する設計完全ガイド!メディアクエリ活用で初心者でもわかるスマホ最適化方法
生徒
「パソコンの画面では綺麗に横に並んでいるメニューが、スマートフォンの画面で見ると崩れてしまうのですが、どうすれば自動で切り替えられるんですか?」
先生
「CSSのメディアクエリという仕組みを使うことで、見ている画面の大きさに合わせてメニューのレイアウトを自動で最適化することができます。」
生徒
「具体的にはどのようにメディアクエリを設定すればいいんですか?」
先生
「それでは、基本的な設計とメディアクエリの書き方を見ていきましょう!」
1. レスポンシブ対応とメディアクエリの基本概念
CSSの設定をすることによって、パソコンやタブレット、スマートフォンなど、どのような画面サイズの端末で見ても、ウェブサイトのメニューが綺麗に整って表示されるように自動でデザインを調整することができるようになります。例えば、画面の横幅が狭くなったときだけに文字の大きさを変えたり、横並びだった項目を縦並びに変えたりすることが可能です。レスポンシブウェブデザインを上手に取り入れることで、どんな端末からアクセスしても見やすくて使いやすい洗練されたホームページを作ることができるようになります。プログラミング未経験でパソコンを触ったことがない方にとっても、お部屋の広さに合わせて家具の置き方やレイアウトをスマートに変更していくような感覚で捉えると非常にイメージしやすくなります。
2. media queryを使った画面サイズによるスタイル切替の仕組み
レスポンシブ対応を実現するための最も基本的で大切なステップが、メディアクエリと呼ばれる画面の条件を指定してCSSを切り替える特殊なルール設定です。ブラウザの横幅が指定した数値以下になったときや以上になったときだけに、適用するスタイルを自動で変更させることで、端末ごとの見づらさをきれいに解消することができます。コンプライアンスとは企業や組織が法律やルールを守ることを指しますが、プログラミングの世界でも正しい文法のルールに従ってコードを書くことが大切です。例えば、外の明るさに応じて自動でサングラスの色が濃くなったり明るくなったりする特殊なレンズの仕組みに似ています。次のサンプルコードでは、最もシンプルなメディアクエリを活用した背景色の切替書き方を確認してみましょう。
<style>
.responsive-box {
background-color: #0d6efd;
color: white;
padding: 15px;
font-weight: bold;
text-align: center;
}
@media screen and (max-width: 768px) {
.responsive-box {
background-color: #198754;
}
}
</style>
<div class="responsive-box">
画面の幅を変えて色の変化を確認しよう
</div>
ブラウザ表示
3. パソコン用の横並びメニューをスマホ用に縦並びへ変更する設計テクニック
大きなパソコン画面では横一列にすっきりと並んでいたナビゲーションメニューを、小さなスマートフォン画面で表示したときには縦一列に積み重なるように自動でレイアウトを組み替えるための実用的なテクニックです。フレックスボックスという並び替えの仕組みに対して、メディアクエリの中でフレックスディレクションのプロパティを上書き指定することで、レイアウトの方向を瞬時に切り替えることができます。品質保証とは製品やサービスの品質を保つための大切なプロセスのことですが、ホームページのレイアウトの崩れを防ぐためにも正しい表示方向の選択が欠かせません。例えば、広い机の上で横に並べていた書類を、狭いカウンターに置くときに縦の束に綺麗に積み替えるような丁寧な作業です。次のプログラムでは、横並びから縦並びに切り替える基本的な書き方を見ていきましょう。
<style>
.menu-container {
display: flex;
gap: 20px;
background-color: #e9ecef;
padding: 15px;
}
.menu-list-item {
font-weight: bold;
background-color: #ffffff;
padding: 8px 15px;
}
@media screen and (max-width: 768px) {
.menu-container {
flex-direction: column;
gap: 10px;
}
}
</style>
<div class="menu-container">
<div class="menu-list-item">トップ</div>
<div class="menu-list-item">サービス</div>
<div class="menu-list-item">お問い合わせ</div>
</div>
ブラウザ表示
4. リストタグとメディアクエリを組み合わせた本格的なナビゲーション設計
実際のウェブサイトでレスポンシブ対応のメニューを構築する際には、箇条書きを表すリストタグをベースにして、画面の幅に応じて見栄えや構造を柔軟に変化させる設計手法が広く採用されています。親となるリスト全体の表示形式をブロックやフレックスに切り替えることで、検索エンジンに対しても構造がしっかりと伝わりやすくなり、SEOの観点からも非常に優れたウェブサイトに仕上げることが可能です。リソース配分とは限られた予算や時間を効率よく割り振るための管理手法ですが、ウェブデザインの世界でも画面のスペースや情報を美しく割り振ることが重要です。例えば、大きな会社の組織図のように、広い場所では大きく広げ、狭い場所ではコンパクトに縦一列に折りたたむような分かりやすい構造に似ています。次のプログラムでは、リストタグを使ったレスポンシブメニューの書き方を確認してみましょう。
<style>
.nav-res-list {
display: flex;
list-style: none;
padding: 0;
margin: 0;
background-color: #dee2e6;
gap: 25px;
padding: 12px 20px;
}
.nav-res-list li a {
text-decoration: none;
color: #212529;
font-weight: bold;
}
@media screen and (max-width: 768px) {
.nav-res-list {
flex-direction: column;
gap: 12px;
}
}
</style>
<ul class="nav-res-list">
<li><a href="#">ホーム</a></li>
<li><a href="#">事業内容</a></li>
<li><a href="#">会社概要</a></li>
</ul>
ブラウザ表示
5. display noneとblockを活用した画面サイズ別の要素表示切替設計
パソコン画面では通常の横並びメニューを表示し、スマートフォンの画面になったときにはそのメニューを完全に非表示にして、代わりに別のハンバーガーボタンを表示させるという高度な表示切替の設計手法です。ディスプレイプロパティのブロック表示と非表示をメディアクエリの中で切り替えることで、デバイスごとに最適な操作方法を提供することが可能になります。リスク管理とは危険を予測してトラブルを防ぐことですが、デザインの不自然な操作ミスをあらかじめ防ぐことも美しいサイト運営においては大切なポイントです。例えば、大きな機械を操作するときには専用の大きなレバーを使い、小さな小型端末ではタッチパネル専用のボタンに切り替えるような仕組みに似ています。次のプログラムでは、画面サイズによって表示を切り替える書き方を見ていきましょう。
<style>
.pc-view-menu {
display: block;
background-color: #ced4da;
padding: 12px;
font-weight: bold;
}
.sp-view-menu {
display: none;
background-color: #adb5bd;
padding: 12px;
font-weight: bold;
color: white;
}
@media screen and (max-width: 768px) {
.pc-view-menu {
display: none;
}
.sp-view-menu {
display: block;
}
}
</style>
<div class="pc-view-menu">
パソコン専用の横並びメニューが表示されています
</div>
<div class="sp-view-menu">
スマートフォン専用のメニューが表示されています
</div>
ブラウザ表示
6. ビューポート設定とブレイクポイント選定による安定したレスポンシブ設計
美しいレスポンシブデザインをウェブサイト全体で正しく機能させるために絶対に欠かせないのが、画面の拡大縮小を正しく制御するためのビューポート設定と、レイアウトを切り替える境目であるブレイクポイントの適切な数値選定です。HTMLの頭文字設定で画面幅をデバイスの幅に合わせる指定を行いつつ、一般的なスマートフォンの横幅を基準とした正しいブレイクポイントを設定することで、どんな最新の端末で見ても表示が崩れない安定したホームページを構築することができます。ナレッジ管理とは知識やノウハウを蓄積して共有することですが、時代に合わせたデザイン手法を学ぶこともプログラミング学習の大切なステップです。例えば、さまざまなサイズの箱に合わせて、中の荷物が絶対に飛び出さないようにきっちりと専用の基準線を引き直していくような工夫に似ています。次のプログラムでは、ブレイクポイントを意識したレスポンシブ設定の応用的な書き方を確認してみましょう。
<style>
.breakpoint-box {
background-color: #e2e3e5;
padding: 15px;
font-weight: bold;
text-align: center;
border: 2px solid #6c757d;
}
@media screen and (max-width: 1024px) {
.breakpoint-box {
background-color: #d1e7dd;
border-color: #198754;
}
}
@media screen and (max-width: 480px) {
.breakpoint-box {
background-color: #f8d7da;
border-color: #dc3545;
}
}
</style>
<div class="breakpoint-box">
画面の広さに応じて枠の色と背景が変化します
</div>
ブラウザ表示
【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー
「魅せる力」をコードで実現。CSS3でモダンWebデザインのプロトタイピングを。
本講座では、単に色を変えるだけではなく、「ユーザーを迷わせないUIデザイン」と「崩れないレイアウト設計」の本質を学びます。最新のCSS3とモダンなレイアウト手法を通じて、プロの現場で通用する「美しさと機能性を両立した実装力」を最短距離で習得します。
具体的なワークショップ内容と環境
【つくるもの】
HTMLで作成した骨組みに対し、商用サイトでも採用される「スタイリッシュなカード型UI」や「レスポンシブなナビゲーション」を構築します。色の選定基準や余白(ホワイトスペース)の黄金比など、デザインの理論をコードに落とし込む工程を体験してください。
【開発環境】
フロントエンド開発の標準であるVisual Studio Code (VS Code)を継続使用。CSSの記述を効率化するプラグインや、ブラウザのデベロッパーツール(検証機能)を駆使して、リアルタイムでデザインを微調整するプロのワークフローを再現します。
この60分で得られる3つの技術資産
要素の横並びや中央揃えを自由自在に操り、どんなデバイスでも崩れないレスポンシブな配置術を完全理解します。
後から修正しやすい「壊れにくいコード」の書き方を伝授。プロの現場で必須となる命名規則の考え方を学びます。
画像の最適化や軽量な装飾技法など、ページの表示速度を落とさずに高級感のある演出を行うテクニックを習得します。
※本講座は、HTMLの基礎を終えた後のステップアップ講座です。Webデザイナー、UIデザイナー、フロントエンドエンジニアへの道を切り開く「魅せる技術」を、モクモク独自のパーソナル指導で着実に定着させます。
リラックスしながら、学ぶことが大切です。しっかりと基礎を理解しましょう!
各回少人数・マンツーマン形式で徹底サポート
このセミナーの詳細・お申し込みはこちら