如何讓 image 塞進一個 div 裡面並維持解析度? | css

Imgur

範例

CodePen 範例

1
2
3
4
5
6
<div class="img-wrap">
  <img
    src="https://images.unsplash.com/photo-1615147342761-9238e15d8b96?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=1001&q=80"
    alt=""
  />
</div>
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
body {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100vw;
  height: 100vh;
  margin: 0;
  padding: 0;
}

.img-wrap {
  border: 1px solid green;
  width: 50%;
  height: 50%;
}

.img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

解說

  1. 先設定圖片的容器的 widthheight

    使用絕對單位或是相對單位都可以

  2. 將 img 設定 width: 100%; height: 100%; 可以將 img 吃到父元素的高度 100%,寬度 100%

  3. 使用 object-fit 可以決定圖片填滿方式的屬性 object-fit: contain; 可以保持圖片原有寬高比例進行縮放,使圖片顯示完整。

    更多 object-fit 的屬性介紹可以參考這裡

參考資料

How do I fit an image (img) inside a div and keep the aspect ratio?

mdn web docs - object-fit

comments powered by Disqus