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

图标链接

使用 Bootstrap 图标或其他图标快速创建风格化的超链接。

图标链接助手组件修改了我们的默认链接样式,以增强其外观并快速对齐任何图标和文本的组合。对齐方式通过行内 flexbox 样式和默认 gap 值设置。我们使用自定义偏移量和颜色来美化下划线。图标会自动调整大小至 1em 以最佳匹配其关联文本的 font-size。

图标链接假设使用的是 Bootstrap 图标,但你可以使用任何你喜欢的图标或图片。

当图标仅用于装饰时,应使用 aria-hidden="true" 将它们从辅助技术中隐藏,就像我们在示例中所做的那样。对于传达意义的图标,通过向 SVG 添加 role="img" 和适当的 aria-label="..." 来提供合适的文本替代。

示例

取一个常规的<a>元素,添加.icon-link,并在你的链接文本的左侧或右侧插入一个图标。图标会自动调整大小、位置和颜色。

HTML
<a class="icon-link" href="#">
  <svg xmlns="http://www.w3.org/2000/svg" class="bi" viewBox="0 0 16 16" aria-hidden="true">
    <path d="M8.186 1.113a.5.5 0 0 0-.372 0L1.846 3.5l2.404.961L10.404 2l-2.218-.887zm3.564 1.426L5.596 5 8 5.961 14.154 3.5l-2.404-.961zm3.25 1.7-6.5 2.6v7.922l6.5-2.6V4.24zM7.5 14.762V6.838L1 4.239v7.923l6.5 2.6zM7.443.184a1.5 1.5 0 0 1 1.114 0l7.129 2.852A.5.5 0 0 1 16 3.5v8.662a1 1 0 0 1-.629.928l-7.185 2.874a.5.5 0 0 1-.372 0L.63 13.09a1 1 0 0 1-.63-.928V3.5a.5.5 0 0 1 .314-.464L7.443.184z"/>
  </svg>
  Icon link
</a>
HTML
<a class="icon-link" href="#">
  Icon link
  <svg xmlns="http://www.w3.org/2000/svg" class="bi" viewBox="0 0 16 16" aria-hidden="true">
    <path d="M1 8a.5.5 0 0 1 .5-.5h11.793l-3.147-3.146a.5.5 0 0 1 .708-.708l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 0 1-.708-.708L13.293 8.5H1.5A.5.5 0 0 1 1 8z"/>
  </svg>
</a>

悬停样式

在悬停时添加 .icon-link-hover 将图标移动到右侧。

HTML
<a class="icon-link icon-link-hover" href="#">
  Icon link
  <svg xmlns="http://www.w3.org/2000/svg" class="bi" viewBox="0 0 16 16" aria-hidden="true">
    <path d="M1 8a.5.5 0 0 1 .5-.5h11.793l-3.147-3.146a.5.5 0 0 1 .708-.708l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 0 1-.708-.708L13.293 8.5H1.5A.5.5 0 0 1 1 8z"/>
  </svg>
</a>

CSS

变量

图标链接在.icon-link上使用本地CSS变量进行实时自定义。CSS变量的值由每个组件独有的Sass映射生成,并应用于上述类。

// stylelint-disable-next-line scss/dollar-variable-default
$icon-link-tokens: defaults(
  (
    --icon-link-gap: .375rem,
    --icon-link-underline-offset: .25em,
    --icon-link-icon-size: 1em,
    --icon-link-icon-transition: .2s ease-in-out transform,
    --icon-link-icon-transform: translate3d(.25em, 0, 0),
  ),
  $icon-link-tokens
);

自定义悬停 transform 通过重写 --bs-icon-link-transform CSS 变量:

HTML
<a class="icon-link icon-link-hover" style="--bs-icon-link-transform: translate3d(0, -.125rem, 0);" href="#">
  <svg xmlns="http://www.w3.org/2000/svg" class="bi" viewBox="0 0 16 16" aria-hidden="true">
    <path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z"/>
    <path d="M9.5 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z"/>
  </svg>
  Icon link
</a>

图标链接的下划线颜色来源于 --bs-link-color,因此覆盖它会同时更新文本和下划线:

HTML
<a class="icon-link icon-link-hover" style="--bs-link-color: #198754;" href="#">
  Icon link
  <svg xmlns="http://www.w3.org/2000/svg" class="bi" viewBox="0 0 16 16" aria-hidden="true">
    <path d="M1 8a.5.5 0 0 1 .5-.5h11.793l-3.147-3.146a.5.5 0 0 1 .708-.708l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 0 1-.708-.708L13.293 8.5H1.5A.5.5 0 0 1 1 8z"/>
  </svg>
</a>

Sass 工具 API

使用我们的 链接工具 修改图标链接,以更改下划线颜色和偏移。

HTML
<a class="icon-link icon-link-hover theme-success underline-success underline-30 hover:underline-80 underline-offset-3" href="#">
  Icon link
  <svg xmlns="http://www.w3.org/2000/svg" class="bi" viewBox="0 0 16 16" aria-hidden="true">
    <path d="M1 8a.5.5 0 0 1 .5-.5h11.793l-3.147-3.146a.5.5 0 0 1 .708-.708l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 0 1-.708-.708L13.293 8.5H1.5A.5.5 0 0 1 1 8z"/>
  </svg>
</a>