CodeGym /课程 /Frontend SELF ZH /自适应图片

自适应图片

Frontend SELF ZH
第 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

属性 sizessrcset 结合使用,用于指定在不同显示条件下的图片宽度。这允许浏览器更准确地选择合适的图片。

语法:

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: 定义了三种不同宽度的图片版本(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