CodeGym /コース /Frontend SELF JA /レスポンシブデザインの基礎

レスポンシブデザインの基礎

Frontend SELF JA
レベル 25 , レッスン 0
使用可能

1.1 モバイルファーストアプローチ

Responsive design — これは、ウェブサイトがさまざまな画面サイズやデバイスに適応できるようにするためのウェブ開発のアプローチで、最高のユーザーエクスペリエンスを提供するものだよ。レスポンシブデザインの主な目的は、どんなデバイスでも便利でアクセスしやすいサイトを作ることなんだ。

モバイルファーストアプローチは、小さな画面用のモバイルデバイス向けのデザインを最初に作成し、その後大きな画面へ拡張していくことを想定しているんだ。この方法は、サイトの最も重要な要素や機能に集中するのに役立つよ。

モバイルファーストアプローチの利点:

  • モバイルユーザー向けのコンテンツの最適化
  • 小さな画面向けにデザインと機能を簡素化
  • コンテンツ量を減らしてパフォーマンスを向上

例:

CSS
    
      /* モバイルデバイス用の基本スタイル */

      body {
        font-size: 16px;
        margin: 0;
        padding: 0;
      }

      /* より大きな画面用のスタイル */

      @media (min-width: 768px) {
        body {
          font-size: 18px;
        }
      }
    
  

1.2 プログレッシブエンハンスメント

プログレッシブエンハンスメントは、すべてのユーザーに基本的な機能を提供し、その後より強力なブラウザやデバイス用に改善を追加することに焦点を当てているんだ。このアプローチは、ユーザーのデバイスがいくつかの機能やスタイルをサポートしていなくても、コンテンツのアクセシビリティを保証する。

プログレッシブエンハンスメントの利点:

  • すべてのユーザーに基本的な機能を提供
  • より新しいデバイスを持っている人のためのユーザーエクスペリエンスの向上
  • コンテンツや機能を失うリスクの低減
HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>プログレッシブエンハンスメント</title>
          <style>
            /* すべてのブラウザ用の基本スタイル */

            body {
              font-family: Arial, sans-serif;
            }

            /* 現代のブラウザ用に改善されたスタイル */

            @supports (display: grid) {
              .container {
              display: grid;
              grid-template-columns: 1fr 1fr;
              }
            }
          </style>
        </head>
        <body>
          <div class="container">
          <div>コンテンツ 1</div>
          <div>コンテンツ 2</div>
          </div>
        </body>
      </html>
    
  

1.3 レイアウトの柔軟性 (Fluid Layouts)

レイアウトの柔軟性は、さまざまな画面サイズに適応できる柔軟な要素を使用することを意味するよ。これは、画面サイズに応じて自動的にサイズを変更する柔軟なコンテナを使用することを含むことがあるんだ。

レイアウトの柔軟性の利点:

  • さまざまなデバイスでのコンテンツ表示の向上
  • 画面サイズの変更へのより良い適応
  • コンテンツの使いやすさとアクセシビリティの向上

例:

HTML
    
      <div class="container">
        <div class="item-1">Content item 1</div>
        <div class="item-2">
          Etiam scelerisque lectus nulla, eget convallis orci convallis vel. Etiam sed interdum sem. Nunc vestibulum lectus nibh, in volutpat velit fermentum eget. Mauris in risus tincidunt, sodales odio et, rutrum ligula. In iaculis congue ex in laoreet. Sed id eros porttitor, finibus diam ultrices, consectetur leo. Fusce aliquam, nibh ac sollicitudin viverra, felis libero fringilla orci, nec auctor elit sapien non arcu. Proin dolor mi, iaculis ut velit id, vestibulum consectetur metus. Duis venenatis felis a diam elementum, eget ullamcorper leo scelerisque. Sed tempus euismod urna et tristique. Duis at odio quis libero commodo ullamcorper id vel odio. Maecenas volutpat rhoncus sodales. Mauris eget nunc accumsan, rhoncus massa at, placerat lorem.
          Etiam ullamcorper elementum tellus non euismod. Mauris euismod mi nisi, sed egestas ligula varius sed. Nunc tortor elit, hendrerit sed gravida in, tempus nec augue. Aliquam vitae condimentum velit. Sed id massa ac felis tempor elementum. Aenean at nulla ipsum. Fusce sed cursus tortor. Duis sodales rhoncus eros, non aliquam ante ultricies ut. Pellentesque auctor ultricies aliquet. In laoreet enim dolor, vel consectetur sapien laoreet eu.
          In efficitur pharetra ex convallis egestas. Praesent egestas, sapien fermentum consectetur vestibulum, quam dui pharetra urna, vitae finibus arcu lacus quis mauris. Quisque consectetur lorem sapien, nec pulvinar elit varius vitae. Cras elementum risus lacus, a interdum tellus euismod ac. Interdum et malesuada fames ac ante ipsum primis in faucibus. Maecenas pharetra, odio vel facilisis venenatis, ipsum leo viverra ligula, ut venenatis enim ipsum ut lectus. Fusce cursus mollis congue.
        </div>
        </div>
    
  
CSS
    
      .container {
        width: 100%;
        padding: 20px;
        box-sizing: border-box;
        color: white;
      }

      .item-1 {
        min-height: 50px;
        width: calc(100% / 3);
        float: left;
        background: purple;
      }

      .item-2 {
        background: gray;
      }
    
  

1.4 コンテンツの階層構造 (Content Hierarchy)

コンテンツの階層構造は、レスポンシブデザインにとって重要で、どんなデバイスでも情報が利用しやすく理解できるようにするのに役立つんだ。これは、見出し、段落、リスト、その他の要素の適切な使用を含んで、明確で論理的な構造を作り出す。

コンテンツの階層構造の利点:

  • 情報の読みやすさと理解しやすさの向上
  • すべてのユーザーに対するコンテンツのアクセシビリティの向上
  • サイトのナビゲーションとインタラクションのしやすさ

例:

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>コンテンツの階層構造</title>
          <style>
            body {
              font-family: Arial, sans-serif;
              margin: 20px;
            }

            h1 {
              font-size: 2em;
            }

            h2 {
              font-size: 1.5em;
            }

            p {
              font-size: 1em;
              line-height: 1.5;
            }
          </style>
        </head>
        <body>
          <h1>メインタイトル</h1>
          <h2>サブタイトル</h2>
          <p>
            これはサブタイトルに続くテキストの段落の例だよ。
            テキストは、すべてのユーザーにとって読みやすく、理解しやすくあるべきなんだ。
          </p>
        </body>
      </html>
    
  
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION