跳至主要内容 跳至文档导航

占位符

使用组件或页面的加载占位符来指示某些内容可能仍在加载。

关于

占位符可用于增强应用程序的体验。它们仅使用HTML和CSS构建,这意味着您不需要任何JavaScript来创建它们。但是,您将需要一些自定义JavaScript来切换其可见性。它们的外观、颜色和尺寸可以使用我们的实用程序类轻松定制。

示例

在下面的示例中,我们采用一个典型的卡片组件,并使用应用占位符重新创建它来创建“加载卡”。两者之间的大小和比例相同。

Placeholder
Card title

Some quick example text to build on the card title and make up the bulk of the card's content.

Go somewhere
<div class="card">
  <img src="..." class="card-img-top" alt="...">

  <div class="card-body">
    <h5 class="card-title">Card title</h5>
    <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
    <a href="#" class="btn btn-primary">Go somewhere</a>
  </div>
</div>

<div class="card" aria-hidden="true">
  <img src="..." class="card-img-top" alt="...">
  <div class="card-body">
    <h5 class="card-title placeholder-glow">
      <span class="placeholder col-6"></span>
    </h5>
    <p class="card-text placeholder-glow">
      <span class="placeholder col-7"></span>
      <span class="placeholder col-4"></span>
      <span class="placeholder col-4"></span>
      <span class="placeholder col-6"></span>
      <span class="placeholder col-8"></span>
    </p>
    <a class="btn btn-primary disabled placeholder col-6"></a>
  </div>
</div>

工作原理

使用.placeholder类和网格列类(例如.col-6)创建占位符以设置 width。它们可以替换元素中的文本,也可以作为修饰符类添加到现有组件中。

我们通过::before.btn应用额外的样式,以确保尊重 height。您可以根据需要将此模式扩展到其他情况,或者在元素中添加 &nbsp;以反映实际文本在其位置呈现时的高度。

html
<p aria-hidden="true">
  <span class="placeholder col-6"></span>
</p>

<a class="btn btn-primary disabled placeholder col-4"></a>
使用 aria-hidden="true"仅表示该元素应隐藏给屏幕阅读器。占位符的 加载 行为取决于作者实际如何使用占位符样式、他们计划如何更新内容等。可能需要一些 JavaScript 代码来交换占位符的状态并通知 AT 用户更新。

宽度

您可以通过网格列类、宽度实用程序或内联样式更改 width

html
<span class="placeholder col-6"></span>
<span class="placeholder w-75"></span>
<span class="placeholder" style="width: 25%;"></span>

颜色

默认情况下,placeholder使用currentColor。这可以用自定义颜色或实用程序类重写。

html
<span class="placeholder col-12"></span>

<span class="placeholder col-12 bg-primary"></span>
<span class="placeholder col-12 bg-secondary"></span>
<span class="placeholder col-12 bg-success"></span>
<span class="placeholder col-12 bg-danger"></span>
<span class="placeholder col-12 bg-warning"></span>
<span class="placeholder col-12 bg-info"></span>
<span class="placeholder col-12 bg-light"></span>
<span class="placeholder col-12 bg-dark"></span>

尺寸大小

.placeholder的大小基于父元素的排版样式。使用大小修饰符自定义它们:.placeholder-lg.placeholder-sm.placeholder-xs

html
<span class="placeholder col-12 placeholder-lg"></span>
<span class="placeholder col-12"></span>
<span class="placeholder col-12 placeholder-sm"></span>
<span class="placeholder col-12 placeholder-xs"></span>

动画

使用.placeholder-glow.placeholder-wave对占位符进行动画处理,以更好地传达正在主动加载的内容的感觉。

html
<p class="placeholder-glow">
  <span class="placeholder col-12"></span>
</p>

<p class="placeholder-wave">
  <span class="placeholder col-12"></span>
</p>

CSS

Sass 变量

$placeholder-opacity-max:           .5;
$placeholder-opacity-min:           .2;