Added in v5.3
View on GitHub
聚焦环(Focus ring)
允许您为元素和组件添加和修改自定义聚焦环样式的实用工具类。
On this page
.focus-ring
辅助器移除了:focus
上的默认 outline
,取而代之的是一个可以进行更广泛定制的 box-shadow
。新的阴影由一系列 CSS 变量组成,从 :root
层继承,可针对任何元素或组件进行修改。
示例
直接点击下面的链接查看聚焦环的操作,或进入下面的示例,然后按Tab。
<a href="#" class="d-inline-flex focus-ring py-1 px-2 text-decoration-none border rounded-2">
Custom focus ring
</a>
定制化
使用我们的 CSS 变量、Sass 变量、实用工具或自定义样式修改聚焦环的样式。
CSS 变量
根据需要修改 --bs-focus-ring-*
CSS 变量,以更改默认外观。
<a href="#" class="d-inline-flex focus-ring py-1 px-2 text-decoration-none border rounded-2" style="--bs-focus-ring-color: rgba(var(--bs-success-rgb), .25)">
Green focus ring
</a>
如上图所示,.focus-ring
通过全局 CSS 变量设置样式,可以在任何父元素上覆盖。这些变量由对应的 Sass 变量生成。
--#{$prefix}focus-ring-width: #{$focus-ring-width};
--#{$prefix}focus-ring-opacity: #{$focus-ring-opacity};
--#{$prefix}focus-ring-color: #{$focus-ring-color};
默认情况下,没有--bs-focus-ring-x
、--bs-focus-ring-y
、--bs-focus-ring-blur
,但我们提供了回退到初始 0
值的 CSS 变量。修改它们可更改默认外观。
<a href="#" class="d-inline-flex focus-ring py-1 px-2 text-decoration-none border rounded-2" style="--bs-focus-ring-x: 10px; --bs-focus-ring-y: 10px; --bs-focus-ring-blur: 4px">
Blurry offset focus ring
</a>
Sass 变量
自定义聚焦环 Sass 变量,在 Bootstrap 驱动的项目中修改聚焦环样式的所有用法。
$focus-ring-width: .25rem;
$focus-ring-opacity: .25;
$focus-ring-color: rgba($primary, $focus-ring-opacity);
$focus-ring-blur: 0;
$focus-ring-box-shadow: 0 0 $focus-ring-blur $focus-ring-width $focus-ring-color;
Sass 实用程序 API
除了 .focus-ring
,我们还有多个 .focus-ring-*
工具来修改辅助类的默认值。使用我们的任意主题色 修改颜色。请注意,鉴于当前的颜色模式支持,浅色和深色变体可能无法在所有背景颜色上显示。
<p><a href="#" class="d-inline-flex focus-ring focus-ring-primary py-1 px-2 text-decoration-none border rounded-2">Primary focus</a></p>
<p><a href="#" class="d-inline-flex focus-ring focus-ring-secondary py-1 px-2 text-decoration-none border rounded-2">Secondary focus</a></p>
<p><a href="#" class="d-inline-flex focus-ring focus-ring-success py-1 px-2 text-decoration-none border rounded-2">Success focus</a></p>
<p><a href="#" class="d-inline-flex focus-ring focus-ring-danger py-1 px-2 text-decoration-none border rounded-2">Danger focus</a></p>
<p><a href="#" class="d-inline-flex focus-ring focus-ring-warning py-1 px-2 text-decoration-none border rounded-2">Warning focus</a></p>
<p><a href="#" class="d-inline-flex focus-ring focus-ring-info py-1 px-2 text-decoration-none border rounded-2">Info focus</a></p>
<p><a href="#" class="d-inline-flex focus-ring focus-ring-light py-1 px-2 text-decoration-none border rounded-2">Light focus</a></p>
<p><a href="#" class="d-inline-flex focus-ring focus-ring-dark py-1 px-2 text-decoration-none border rounded-2">Dark focus</a></p>
聚焦环实用程序在 scss/_utilities.scss
中的实用程序 API 中声明。了解如何使用实用程序 API
"focus-ring": (
css-var: true,
css-variable-name: focus-ring-color,
class: focus-ring,
values: map-loop($theme-colors-rgb, rgba-css-var, "$key", "focus-ring")
),