CodeGym /コース /Frontend SELF JA /レスポンシブ画像

レスポンシブ画像

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

5.1 srcset属性

レスポンシブ画像は、反応の良い最適化されたウェブページを作成する上で重要な役割を果たすんだよね。デバイスや表示条件に応じて、さまざまなサイズと解像度の画像をロードできるので、パフォーマンスと使いやすさが向上するんだ。HTMLでレスポンシブ画像を実装するための主なツールは、srcsetsizes属性なんだ。

srcset属性は、さまざまなサイズや解像度の画像ソースを指定するために使うんだ。ブラウザはユーザーのデバイスに最適な画像を選択するんだよ。

シンタックス:

    
      <img src="default.jpg" srcset="image1.jpg 1x, image2.jpg 2x" alt="Example Image">
    
  

どこで:

  • src: デフォルトの画像のパスを指定する
  • srcset: カンマで区切られた画像とその特性のリストを含む
  • 1x, 2x: スケーリング係数を示す(例えば、1xは標準解像度、2xは高解像度デバイス向けだね)

srcsetの使用例:

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>srcsetの使用例</title>
        </head>
        <body>
          <img
            src="images/default.jpg"
            srcset="images/image-small.jpg 480w,
              images/image-medium.jpg 800w,
              images/image-large.jpg 1200w"
            alt="レスポンシブ画像の例">
        </body>
      </html>
    
  

コード説明:

  • src="images/default.jpg": デフォルトの画像を指定する
  • srcset: 画像の幅をピクセル単位で指定したリスト(480w, 800w, 1200w)。 ブラウザはウィンドウの幅に基づいて最適な画像を選択する

5.2 sizes属性

sizes属性は、表示条件に応じた画像の幅を指定するためにsrcsetと組み合わせて使われるんだ。これにより、ブラウザはより正確に適切な画像を選べるよ。

シンタックス:

HTML
    
      <img src="default.jpg"
      srcset="image1.jpg 480w, image2.jpg 800w"
      sizes="(max-width: 600px) 480px, 800px"
      alt="Example Image">
    
  

どこで:

  • sizes: 表示条件とそれに応じた画像の幅のリストを含む
  • (max-width: 600px) 480px: ビューポートの幅が600px以下の場合、480px幅の画像を使用する
  • 800px: それ以外の場合は800px幅の画像を使用する

sizesの使用例:

HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>sizesの使用例</title>
          <style>
            .responsive-img {
              width: 100%;
              max-width: 100%;
              height: auto;
            }
          </style>
        </head>
        <body>
        <img
          class="responsive-img"
          src="images/default.jpg"
          srcset="images/image-small.jpg 480w,
            images/image-medium.jpg 800w,
            images/image-large.jpg 1200w"
          sizes="(max-width: 600px) 480px,
            (max-width: 900px) 800px,
            1200px"
          alt="レスポンシブ画像の例">
        </body>
      </html>
    
  

コード説明:

sizesは、さまざまな表示条件に対して画像の幅を決めるんだ:

  • ビューポートの幅が600px以下の場合、480px幅の画像を使用する
  • ビューポートの幅が900px以下の場合、800px幅の画像を使用する
  • それ以外の場合は1200px幅の画像を使用する

5.3 レスポンシブ画像

異なるスクリーンサイズに対応した画像

srcsetsizes属性を使用して、画像がさまざまなスクリーンサイズに適応する例を作ってみよう。

例:

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>
            .responsive-img {
              width: 100%;
              height: auto;
            }
          </style>
        </head>
        <body>
          <img
            class="responsive-img"
            src="images/default.jpg"
            srcset="images/image-small.jpg 480w,
              images/image-medium.jpg 800w,
              images/image-large.jpg 1200w"
            sizes="(max-width: 600px) 480px,
              (max-width: 900px) 800px,
              1200px"
            alt="レスポンシブ画像の例">
        </body>
      </html>
    
  

コード説明:

  • src="images/default.jpg": デフォルトの画像を指定する
  • srcset: 3バージョンの画像を幅で指定する(480w, 800w, 1200w
  • sizes: さまざまな条件に応じた画像の幅を指定する:
    • 600px以下の場合は480px幅の画像を使用する
    • 900px以下の場合は800px幅の画像を使用する
    • 900px以上の場合は1200px幅の画像を使用する
  • .responsive-img: CSSクラスで、画像に100%の幅と自動の高さを設定して、 利用可能なスペースを占めるようにし、比率を保つ
1
Опрос
レスポンシブデザイン,  25 уровень,  4 лекция
недоступен
レスポンシブデザイン
レスポンシブデザイン
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION