Skip to content

Tailwind CSS - 背景原点

实用工具类,用于控制元素背景图片或颜色的起始原点。它指定了 background-position 的相对基准。

要理解背景原点,你首先需要理解 CSS 盒子模型(CSS Box Model)。一个元素的盒子由三个主要区域组成:

  • 内容盒(Content Box): 你的文本和其他内容所在区域。
  • 内边距盒(Padding Box): 内容与边框之间的空间。
  • 边框盒(Border Box): 边框本身占据的区域。

bg-origin-* 实用工具类决定了背景的起始点(左上角)是与边框、内边距还是内容对齐。

Tailwind 提供了三个实用工具类来控制背景原点。

类名CSS 属性描述
bg-origin-borderbackground-origin: border-box;背景相对于边框盒定位。它可能延伸到边框下方。
bg-origin-paddingbackground-origin: padding-box;背景相对于内边距盒定位(默认行为)。
bg-origin-contentbackground-origin: content-box;背景相对于内容盒定位。

当元素具有显著的内边距和虚线或半透明边框时,这些实用工具类之间的差异最为明显。在下面的示例中,我们使用虚线边框来揭示其下方发生的情况。对于背景,我们使用 CSS 渐变以使示例自包含。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Background Origin Comparison</title>
<!-- 为了演示,我们使用 Tailwind Play CDN。在实际项目中,请通过构建步骤设置 Tailwind CSS。 -->
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-slate-100 p-8 antialiased">
<div class="max-w-4xl mx-auto">
<h1 class="text-3xl font-bold text-center text-slate-800 mb-8">Background Origin Utilities</h1>
<div class="grid sm:grid-cols-3 gap-8 text-center">
<!-- 背景原点:边框 -->
<div>
<h2 class="font-mono text-slate-600 mb-2">bg-origin-border</h2>
<div class="bg-origin-border p-6 h-40 border-8 border-dashed border-purple-400 bg-gradient-to-r from-cyan-400 to-blue-600 rounded-lg flex items-center justify-center">
<p class="text-white font-bold bg-black/50 p-2 rounded">渐变从边框开始。</p>
</div>
</div>
<!-- 背景原点:内边距(默认) -->
<div>
<h2 class="font-mono text-slate-600 mb-2">bg-origin-padding</h2>
<div class="bg-origin-padding p-6 h-40 border-8 border-dashed border-purple-400 bg-gradient-to-r from-cyan-400 to-blue-600 rounded-lg flex items-center justify-center">
<p class="text-white font-bold bg-black/50 p-2 rounded">渐变从内边距开始。</p>
</div>
</div>
<!-- 背景原点:内容 -->
<div>
<h2 class="font-mono text-slate-600 mb-2">bg-origin-content</h2>
<div class="bg-origin-content p-6 h-40 border-8 border-dashed border-purple-400 bg-gradient-to-r from-cyan-400 to-blue-600 rounded-lg flex items-center justify-center">
<p class="text-white font-bold bg-black/50 p-2 rounded">渐变从内容开始。</p>
</div>
</div>
</div>
</div>
</body>
</html>

虽然 bg-origin-padding 是默认且最常见的行为,但其他实用工具类对于特定的视觉效果很有用:

  • bg-origin-border:当你有一个透明或虚线边框,并且希望背景在其下方可见,从而创造出整体统一的视觉效果时,请使用此项。
  • bg-origin-content:当你希望严格将背景图案或图片限制在内容区域内,从而在背景和内边距之间创建清晰的分离时,请使用此项。

这些实用工具类通常与 background-clip 结合使用,不仅控制背景原点,还控制背景的绘制区域。