当サイトはアフィリエイト広告を利用しています
メディアクエリを使って、レスポンシブサイトにしよう!

メディアクエリのブレイクポイントを使って、レスポンシブにする書き方

  • 2022年3月12日
  • 2024年5月31日
  • HTML&CSS

メディアクエリとは

CSSの仕様の1つで、表示された画面の大きさによって、見栄えを切り替えられる機能のこと。

それによって、レスポンシブサイトを作ることが出来ます。

レスポンシブサイトとは

PCだけじゃなく、スマホでもタブレットでも綺麗に表示されるデザインですね。

ちなみに、今から12年前(今現在2022年)自分の周りは、全員ガラケーでした。(笑)

9年前、自分の周りは、自分以外全員スマホでした。(苦笑)

その3年間で、スマホが爆発的に普及したってことですね。

検索数でも、数年前にスマホの方がPCより多くなった様です。

今やスマホでも綺麗に表示されて当たり前という時代。

そのあたりも意識して、やらざるを得ないという訳です。

サイトの構成を考えよう

カラムとは

columnで、縦の列という意味です。

ちなみに、このサイトは右側3分の1に検索やカテゴリーを、左側3分の2に本記事を配置している2カラムの構成です。

ちなみに、横の列はロウ(row)と言います。

ブレイクポイント768pxの2カラムの簡単なレスポンシブサイトの作り方

デモ画面はこちら!

画面サイズが768px以上の時のデザイン

画面サイズが767px以下の時のデザイン

htmlとcssを見ていこう!

html

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>DEMO</title>
    <meta name="description" content="実際にコードを書くことで、デザインや動きを確認するためのデモサイトです。">
    <link rel="stylesheet" type="text/css" href="css/style.css">
  </head>
  <body>
    <div class="container">
        <!-- ヘッダー -->
      <header>
      </header>

        <!-- メイン -->
      <main>
      </main>

        <!-- サイドバー -->
      <aside>
      </aside>
      
        <!-- フッター -->
      <footer>
      </footer>
    </div>
  </body>
</html> 

css

@charset "UTF-8";
body {
  margin: 0;
}

/* 画面サイズ(768px~) */
@media screen and (min-width: 768px) {
.container {
  display: grid;   /* グリッドコンテナを作る */
  width: 100%;
  height: 100vh;
  grid-template-rows: 100px 1fr 50px;
  grid-template-columns: 3fr 1fr;
  grid-template-areas: 'header header'
                       'main   sidebar'
                       'footer footer';
}
}

/* 画面サイズ(~767px) */
@media screen and (max-width: 767px) {
.container {
  display: grid;   /* グリッドコンテナを作る */
  width: 100%;
  height: 100vh;
  grid-template-rows: 50px 1fr 1fr 50px;
  grid-template-columns: 1fr;
  grid-template-areas: 'header'
                       'main'
                       'sidebar'
                       'footer';
}
}

/* ヘッダー */
header {
  grid-area: header;
  background-color: #fcc993;
}

/* メイン */
main {
  grid-area: main;
  background-color: #ffff93;   
}

/* サイドバー */
aside {
  grid-area: sidebar;
  background-color: #93ffc9;
}

/* フッター */
footer {
  grid-area: footer;
  background-color: #c9ff93;
}

cssのbody {margin: 0;}は、次の記事で説明します。

関連記事

先日cssファイルに、body {margin: 0;}を書き込みました。 これを書き込まず、リセットcssも記載していなければ、Google Chromeブラウザの上下左右に白い隙間ができていると思います。 これを消していきます。 […]

デベロッパーツール、検証を使いこなそう!

@media screen and (min-width: 768px) {}の部分は、画面サイズが768px以上の時のスタイルという意味です。

@media screen and (max-width: 767px) {}の部分は、画面サイズが767px以下の時のスタイルという意味です。

gridは、この表のような書き方が、最も基礎的なものですね。

他にも書き方がありますし、大変便利な使い方もあります。

こちらのサイトが、その辺りをを詳しく説明してくれています。

一番分かりやすいCSS Grid Layoutの使い方ガイド | Web Design Trends

https://webdesign-trends.net/entry/11086

CSS Gridを使ったレスポンシブ対応の基本レイアウト | Webクリエイターボックス

https://www.webcreatorbox.com/tech/css-grid-basic-layout

さいごに

なるべく絶対単位pxよりも、%などの相対単位で書いていきたいですね。

あと、注意点が1つあります。

codeを変えても、デザインに反映されていない場合は、

キャッシュをクリアすること

これだけ要注意です。

【ブラウザの右上のGoogle Chromeの設定(縦3つの点)-履歴-閲覧履歴データの削除-キャッシュされた画像とファイルにチェック-データ削除をクリック】

今日は、ありがとうございました。では、また!

スポンサーリンク