「及時」模式:全新世代的 Tailwind CSS
Tailwind CSS on GitHub

Object Fit (物件適配)

控制元素 (Element) 在容器中如何重新調整大小

Default class reference

Class
屬性
object-containobject-fit: contain;
object-coverobject-fit: cover;
object-fillobject-fit: fill;
object-noneobject-fit: none;
object-scale-downobject-fit: scale-down;

容納

使用 .object-contain 功能讓內容可以完全顯示在元素的容器中。

也就是內容縮放時若先碰到上下邊界,則內容高度與容器高度相同; 若先碰到的是左右邊界,則內容寬度會與容器寬度保持相同,內容仍然保持原本長寬比例。 以下就是內容縮放時先碰到上下邊界的範例。

<div class="bg-rose-300 ...">
  <img class="object-contain h-48 w-full ...">
</div>

覆蓋

使用 .object-cover 功能讓內容可以覆蓋在元素的容器中。

這個覆蓋是以寬度為主,會將內容縮放到與容器寬度一致,高度則超出不管,內容仍然保持原本長寬比例。

<div class="bg-indigo-300 ...">
  <img class="object-cover h-48 w-full ...">
</div>

填滿

使用 .object-fill 功能將內容拉伸到填滿元素容器。

也就是使內容的寬度與高度拉伸到容器大小,不保持原本的長寬比例,所以內容有可能看起來會變形

<div class="bg-light-blue-300 ...">
  <img class="object-fill h-48 w-full ...">
</div>

不適配

若不希望內容隨著容器大小發生變化、想讓內容保持原本的大小,使用 .object-none

<div class="bg-yellow-300">
  <img class="object-none h-48 w-full ...">
</div>

縮小

使用 .object-scale-down 功能在容器大小不足以完全顯示內容能時使內容以 .object-contain 的方式縮放。

<div class="bg-green-300">
  <img class="object-scale-down h-48 w-full ...">
</div>

響應式

如要讓元素背景圖片的重覆顯示有響應式效果,可在現有背景重覆顯示功能前加上前綴詞 {screen}: 。例如:中型或以上的螢幕尺寸使用 md:object-scale-down 以套用 object-scale-down 功能。

<div>
  <img class="object-contain md:object-scale-down ..." src="...">
</div>

更多有關 Tailwind 響應式設計功能的資訊,可參考 響應式設計 文件。

客製化

變化模式

默認情況下, 只有 響應式 的 object-fit 變化模式 (variants) 會產生。

tailwind.config.jsvariants 區塊中變更 objectFit 屬性來決定有哪些變化模式會生成。

舉個例子來說,這個設定將會生成 響應式 和 hover 的變化模式。

  // tailwind.config.js
  module.exports = {
    variants: {
      extend: {
        // ...
+       objectFit: ['responsive', 'hover'],
      }
    }
  }

停用

如果你不打算在專案中使用 object-fit 功能,可以在你的設定檔裡的 corePlugins 屬性中將 objectFit 設定為 false 來停用功能:

  // tailwind.config.js
  module.exports = {
    corePlugins: {
      // ...
+     objectFit: false,
    }
  }