跳到主要内容
输入关键词开始搜索,↑ ↓ 选择,Enter 打开
没有找到匹配的文档

悬停浮起

在悬停和键盘聚焦时,通过微妙的变换和阴影提升元素。

它是如何工作的

将.hover-lift添加到任何元素以轻微提升它——在用户悬停或使用键盘聚焦时将其向上移动并加深其阴影。这是一种轻量的方式来提示卡片、方块或其他表面是可交互的。

该效果由 CSS 自定义属性驱动,并通过我们的 transition() mixin 应用,因此完全可定制,并且会自动遵循 prefers-reduced-motion 媒体特性——偏好减少动画的用户将获得提升的阴影和偏移效果,但没有动画。

示例

将鼠标悬停或使用标签键到下面的卡片上即可看到它升起。

HTML
<a href="#" class="card hover-lift text-decoration-none" style="max-width: 20rem;">
  <div class="card-body">
    <h5 class="card-title">Hover me</h5>
    <p class="card-text mb-0">This card lifts on hover and keyboard focus.</p>
  </div>
</a>

因为它只设置 transform 和 box-shadow,.hover-lift 可以与任何元素组合——按钮、列表项或普通容器。

HTML
<button type="button" class="btn-solid theme-primary hover-lift">Lift on hover</button>

CSS

变量

悬停提升助手在.hover-lift上使用本地 CSS 变量进行实时自定义。CSS 变量的值是由每个组件独有的 Sass map生成的,并应用于上述类。

// stylelint-disable-next-line scss/dollar-variable-default
$hover-lift-tokens: defaults(
  (
    --hover-lift-transition-duration: .2s,
    --hover-lift-transition-timing: ease,
    --hover-lift-transform: translateY(-.25rem),
    --hover-lift-box-shadow: var(--box-shadow-lg),
  ),
  $hover-lift-tokens
);

覆盖令牌以调整提升距离、阴影或时间。例如,更大幅度的上升并带有更快的过渡:

HTML
<a href="#" class="card hover-lift text-decoration-none" style="--bs-hover-lift-transform: translateY(-.5rem); --bs-hover-lift-transition-duration: .1s; max-width: 20rem;">
  <div class="card-body">
    <h5 class="card-title">Bigger lift</h5>
    <p class="card-text mb-0">Customized transform and duration.</p>
  </div>
</a>