การออกแบบเว็บไซต์ที่ตอบสนองได้ - รูปภาพ

ใช้คุณสมบัติ width

ถ้า width คุณสมบัติตั้งค่าเป็นเปอร์เซ็น และความสูงตั้งค่าเป็น "auto" ภาพจะเติมตัวเองตามการปรับขนาด:

ตัวอย่าง

img {
  width: 100%;
  height: auto;
}

ทดลองด้วยตัวเอง

โปรดทราบว่าในตัวอย่างที่กล่าวข้างต้น ภาพสามารถขยายตัวเกินขนาดต้นตอของมัน. ในหลายๆครั้งแล้ว ทางเลือกที่ดีขึ้นคือใช้ max-width คุณสมบัติ。

ใช้คุณสมบัติ max-width

ถ้าจะตั้งค่าคุณสมบัติ max-width ให้เป็น 100% ภาพจะถูกย่อตัวตามความจำเป็น แต่จะไม่ขยายตัวเกินขนาดต้นตอ:

ตัวอย่าง

img {
  max-width: 100%;
  height: auto;
}

ทดลองด้วยตัวเอง

เพิ่มภาพไปยังเว็บหน้าตัวอย่าง

ตัวอย่าง

img {
  width: 100%;
  height: auto;
}

ทดลองด้วยตัวเอง

ภาพพื้นหลัง

ภาพพื้นหลังยังสามารถตอบสนองการปรับขนาดและสัดส่วนตัวเองได้:

นี่คือสามวิธีที่เราแสดงให้เห็น:

1. ถ้าจะ background-size 属性设置为 "contain" จะทำให้ภาพพื้นหลังขยายตัว และพยายามที่จะตรงกับโดเมนเน็ต อย่างไรก็ตามภาพจะเหมือนกันในสัดส่วน (สัดส่วนระหว่างความสูงและความกว้างของภาพ):

這是 CSS 代码:

ตัวอย่าง

div {
  width: 100%;
  height: 400px;
  background-image: url('img_flowers.jpg');
  background-repeat: no-repeat;
  background-size: contain;
  border: 1px solid red;
}

ทดลองด้วยตัวเอง

2. 如果將 background-size 屬性設置為 "100% 100%",則背景圖像將拉伸以覆蓋整個內容區域:

這是 CSS 代码:

ตัวอย่าง

div {
  width: 100%;
  height: 400px;
  background-image: url('img_flowers.jpg');
  background-size: 100% 100%;
  border: 1px solid red;
}

ทดลองด้วยตัวเอง

3. 如果 background-size 屬性設置為 "cover",則背景圖像將縮放以覆蓋整個內容區域。請注意,"cover" 值保持長寬比,且可能會裁剪背景圖像的某部分:

這是 CSS 代码:

ตัวอย่าง

div {
  width: 100%;
  height: 400px;
  background-image: url('img_flowers.jpg');
  background-size: cover;
  border: 1px solid red;
}

ทดลองด้วยตัวเอง

為不同設備準備不同圖像

大圖像在大型計算機屏幕上可以完美顯示,但在小型設備上就沒用了。為什麼在不得不縮小圖像時又加載大圖像呢?為了減少負擔或出於任何其他原因,您可以使用媒體查詢在不同的設備上顯示不同的圖像。

這是一幅大圖像和一幅小圖像,會在不同的設備上顯示:

ตัวอย่าง

/* 對於小於 400 像素的寬度: */
body {
  background-image: url('img_smallflower.jpg'); 
}
/* 對於 400 像素或更大的寬度: */
@media only screen and (min-width: 400px) {
  body { 
    background-image: url('img_flowers.jpg'); 
  }
}

ทดลองด้วยตัวเอง

您可以使用媒體查詢 min-device-width 而不是 min-width 來檢查設備寬度,而不是瀏覽器寬度。然後,當您調整瀏覽器窗口的大小時,圖像將不會變化:

ตัวอย่าง

/* 對於小於 400 像素的設備: */
body {
  background-image: url('img_smallflower.jpg'); 
}
/* 對於 400 像素及更大的設備: */
@media only screen and (min-device-width: 400px) {
  body { 
    background-image: url('img_flowers.jpg'); 
  }
}

ทดลองด้วยตัวเอง

HTML5 <picture> 元素

HTML5 引入了 <picture> 元素,該元素使您可以定義多幅圖像。

瀏覽器支持

38.0 13 38.0 9.1 25.0

<picture> 元素的作用類似於 <video><audio> 要素。我們設置了不同的來源,而匹配優先權的第一個來源是正在使用的來源:

ตัวอย่าง

<picture>
  <source srcset="img_smallflower.jpg" media="(max-width: 400px)">
  <source srcset="img_flowers.jpg">
  <img src="img_flowers.jpg" alt="Flowers">
</picture>

ทดลองด้วยตัวเอง

srcset ขอบเขตเป็นความจำเป็น มันกำหนดแหล่งข้อมูลของภาพ

media ขอบเขตเป็นที่เลือกใช้ มันยอมรับคุณสมบัติที่สามารถใช้ได้ใน CSS @media กฎ ที่หาได้ใน media query

คำแนะนำ:คุณควรจะใส่ <picture> การกำหนดองค์ประกอบโดยเบราเซอร์ <img> องค์ประกอบ