HTML img 也能有 bg-image 的 cover 效果

HTML img 也能有 bg-image 的 cover 效果

一說到讓不同寬高的圖片都可以填充在一區塊裡,大多數人應該都是先想到使用 background-image + background-size: cover。

而最近在開發系統時,意外發現一個好用的 CSS 屬性 - object-fit。它可以使 image 也達到相同的效果,先看範例:

object-fit 的值有:

  • fill:預設值,會使圖片變形以合適設定的大小。(不推,會變形)
  • contain: 保持圖片比例呈現在設定的大小中。
  • cover: 保持圖片比並裁剪至適合的大小中。
  • none: 不調整圖片比例。
  • scale-down: 等比縮小,和 contain 的效果相似。

像是 cover 就可以應用在對話框的頭貼,或是比較重要的圖片呈現。因為是直接使用 image 標籤,所以相比 background-image 最大的好處就是,img 標籤的 seo 比較好。

支援度來說,以較新的屬性來說不算太差:

小補充:
使用 object-fit: over 時,可能也會想要移動裁切的位置,這時候就可以使用 object-position,效果就類似於 background-position。
object-position 的預設值是 50% 50%,也就是置中的意思,有可以更換為 top、bottom 等值。

透過兩個屬性的搭配,在圖片運用上就可以更有彈性了!

參考資料:
Udemy (從 Udemy 的頭像發現這個屬性的 XD )

評論

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×