Skip to content

Tailwind CSS - 环形偏移颜色

用于设置元素轮廓描边偏移颜色的工具类。描边偏移是元素与其焦点描边之间可见的空间,对于确保描边在任何背景下都可见至关重要。

当你应用焦点描边(ring-2、ring-4 等)时,它会直接出现在元素边框的外部。如果元素放置在与描边颜色相同的背景上,描边将变得不可见。这是一个重要的可访问性问题。

ring-offset-color 工具类通过在元素周围、描边内部创建一个纯色空间来解决此问题。这确保了焦点描边始终具有对比鲜明的背景,使其始终可见。

要设置描边偏移颜色,请使用 ring-offset-{color} 工具类。这些类通常与 ring-{width} 和 ring-offset-{width} 类结合使用。完整的默认调色板可用。

Class PatternCSS Properties
ring-offset-{color}--tw-ring-offset-color: {colorValue};
ring-offset-white--tw-ring-offset-color: #fff;
ring-offset-slate-900--tw-ring-offset-color: #0f172a;
ring-offset-blue-500--tw-ring-offset-color: #3b82f6;

注意: 有关所有可用颜色工具类的完整列表,请参阅 Tailwind CSS 描边偏移颜色官方文档。

一个常见的用例是样式化按钮,使其具有清晰且可访问的焦点指示器。在此示例中,我们将创建一个按钮,当它获得焦点时,会显示一个带有白色偏移的蓝色描边。这确保了即使按钮放置在蓝色背景上,蓝色描边也可见。

此示例演示了如何应用描边偏移颜色工具类,以确保焦点描边始终可见。focus: 变体用于仅当元素处于焦点状态时应用这些样式。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Accessible Button with Ring Offset</title>
<!-- For demonstration, we use the Tailwind Play CDN. In a real project, set up Tailwind CSS with a build step. -->
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-slate-800 dark antialiased font-sans text-white flex items-center justify-center min-h-screen">
<div class="space-y-4 text-center">
<h1 class="text-2xl font-bold">Accessible Button with Ring Offset</h1>
<p class="text-slate-400">Click the button to see the focus ring with its offset.</p>
<button class="bg-blue-600 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded-lg transition-colors duration-200 focus:outline-none focus:ring-4 focus:ring-blue-400 focus:ring-offset-4 focus:ring-offset-slate-800">
Click Me
</button>
<p class="text-slate-500 text-sm max-w-md mx-auto pt-4">
`focus:ring-offset-slate-800` 类确保焦点描边在深色页面背景下可见,从而创建清晰的分离。
</p>
</div>
</body>
</html>

一种常见的最佳实践是将描边偏移颜色设置为与组件的背景颜色匹配。这会创建一种无缝效果,使描边与其元素之间似乎有一个间隙。在上面的示例中,focus:ring-offset-slate-800 与 <body> 的 bg-slate-800 匹配。

与大多数 Tailwind 工具类一样,描边偏移颜色可以与状态和响应式变体结合使用。例如,当元素获得焦点时,md:focus:ring-offset-red-500 将在中等屏幕及更大尺寸的屏幕上应用红色偏移颜色。

你可以通过扩展 ringOffsetColor 主题对象,将你自己的描边偏移颜色添加到 tailwind.config.js 文件中。

tailwind.config.js
module.exports = {
theme: {
extend: {
ringOffsetColor: {
'brand': '#FF6347', // 示例:番茄红
}
}
}
}

通过此配置,你现在可以在 HTML 中使用 ring-offset-brand 类。