v5.1 中添加在 GitHub 上查看
占位符
使用组件或页面的加载占位符来表示某些内容可能仍在加载。
此页面
关于
占位符可用于增强应用程序体验。它们仅使用 HTML 和 CSS 构建,这意味着您不需要任何 JavaScript 来创建它们。但是,您需要一些自定义 JavaScript 来切换它们的可见性。它们的外观、颜色和大小可以使用我们的实用程序类轻松自定义。
示例
在下面的示例中,我们采用典型的卡片组件,并使用占位符重新创建它,以创建“加载卡片”。两者之间的尺寸和比例相同。
<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" aria-disabled="true"></a>
</div>
</div>
工作原理
使用 .placeholder
类和网格列类(例如 .col-6
)创建占位符,以设置 width
。它们可以替换元素内的文本,或作为修饰符类添加到现有组件中。
我们通过 ::before
对 .btn
应用额外的样式,以确保 height
得到尊重。您可以根据需要将此模式扩展到其他情况,或在元素中添加
以反映实际文本在其位置呈现时的高度。
<p aria-hidden="true">
<span class="placeholder col-6"></span>
</p>
<a class="btn btn-primary disabled placeholder col-4" aria-disabled="true"></a>
使用
aria-hidden="true"
仅表示该元素应隐藏在屏幕阅读器中。占位符的加载行为取决于作者实际使用占位符样式的方式、他们计划如何更新内容等。可能需要一些 JavaScript 代码来交换占位符的状态并告知 AT 用户更新。
宽度
您可以通过网格列类、宽度实用程序或内联样式更改 width
。
<span class="placeholder col-6"></span>
<span class="placeholder w-75"></span>
<span class="placeholder" style="width: 25%;"></span>
颜色
默认情况下,placeholder
使用 currentColor
。这可以用自定义颜色或实用程序类覆盖。
<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
。
<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
为占位符添加动画,以更好地传达某种内容正在主动加载的印象。
<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;