Skip to content

Tailwind CSS - 背景尺寸

# Tailwind CSS 现代指南:背景尺寸

Section titled “# Tailwind CSS 现代指南:背景尺寸”

Tailwind CSS 中的 background-size 实用工具类控制背景图片在其容器内的缩放方式。这对于创建响应式且视觉吸引力强的设计至关重要。

## 核心实用工具类:Cover 与 Contain

Section titled “## 核心实用工具类:Cover 与 Contain”

理解 bg-cover 和 bg-contain 之间的区别是关键。

  • bg-cover:填充整个容器。浏览器会尽可能大地缩放图片,同时确保它完全覆盖背景区域。如果宽高比不匹配,图片的某些部分可能会被裁剪。
  • bg-contain:适应容器内部。浏览器会尽可能大地缩放图片,同时确保整个图片都可见。如果宽高比不匹配,可能会留下空白区域(例如信箱模式的黑边)。
  • bg-auto:以其自然尺寸显示图片,不进行任何缩放。
类名CSS 属性主要用例
bg-autobackground-size: auto;以原始尺寸显示小型重复图案。
bg-coverbackground-size: cover;全幅背景图片,英雄区域。
bg-containbackground-size: contain;显示必须完全可见的 Logo 或图标。

此示例在方形容器中使用非方形图片,以清晰地演示每个实用工具类的行为方式。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Modern Background Size Example</title>
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-slate-100 dark:bg-slate-900 p-8 font-sans">
<h1 class="text-3xl font-bold text-slate-900 dark:text-white mb-8 text-center">Background Size Comparison</h1>
<div class="grid md:grid-cols-3 gap-8 max-w-6xl mx-auto">
<!-- 1. bg-cover -->
<div>
<h2 class="font-bold text-xl mb-3 text-slate-800 dark:text-slate-200 text-center">`bg-cover`</h2>
<div class="h-64 w-full bg-slate-300 rounded-lg shadow-md bg-cover bg-center bg-no-repeat" style="background-image:url('https://images.unsplash.com/photo-1566275529824-cca6d008f3da?q=80&w=1974&auto=format&fit=crop')"></div>
<p class="mt-2 text-center text-sm text-slate-600 dark:text-slate-400">填充容器;两侧被裁剪。</p>
</div>
<!-- 2. bg-contain -->
<div>
<h2 class="font-bold text-xl mb-3 text-slate-800 dark:text-slate-200 text-center">`bg-contain`</h2>
<div class="h-64 w-full bg-slate-300 rounded-lg shadow-md bg-contain bg-center bg-no-repeat" style="background-image:url('https://images.unsplash.com/photo-1566275529824-cca6d008f3da?q=80&w=1974&auto=format&fit=crop')"></div>
<p class="mt-2 text-center text-sm text-slate-600 dark:text-slate-400">适应内部;创建‘信箱’模式空白。</p>
</div>
<!-- 3. bg-auto -->
<div>
<h2 class="font-bold text-xl mb-3 text-slate-800 dark:text-slate-200 text-center">`bg-auto`</h2>
<div class="h-64 w-full bg-slate-300 rounded-lg shadow-md bg-auto bg-center bg-no-repeat" style="background-image:url('https://images.unsplash.com/photo-1566275529824-cca6d008f3da?q=80&w=1974&auto=format&fit=crop')"></div>
<p class="mt-2 text-center text-sm text-slate-600 dark:text-slate-400">原始尺寸;溢出容器。</p>
</div>
</div>
</body>
</html>
  • 结合位置:背景尺寸与背景位置实用工具类(bg-center、bg-top、bg-left-bottom 等)协同工作。使用 bg-cover 时,你可以使用位置类来控制图片 哪一部分 保持可见。例如,bg-cover bg-top 确保图片的顶部永远不会被裁剪。
  • 任意值:通过适当的构建设置,你可以使用任意值来实现完全控制:bg-[length:50%_100%] 将使背景宽度为容器的 50%,高度为 100%。这对于特殊效果很有用。
  • 响应式尺寸调整:在不同的断点应用不同的背景尺寸。例如,你可能在移动设备上使用 bg-contain 来显示完整的 Logo,但在桌面设备上切换到 md:bg-cover 以获得更具沉浸感的体验。

对于 bg-cover,使用足够大以在高分辨率显示器上看起来清晰的图片,但又不能太大,以免影响页面加载时间。使用 WebP 或 AVIF 等现代图片格式以及工具来压缩图片,同时不牺牲过多质量。