Bootstrap5 警告(Alerts)

半兽人 发表于: 2020-06-26   最后更新时间: 2023-06-12 20:05:35  
{{totalSubscript}} 订阅, 3,736 游览

Bootstrap5 警告(Alerts)

通过少量可用且灵活的提醒信息,为典型的用户操作提供上下文反馈信息。

示例

警告可用于任何长度的文本,以及一个可选的关闭按钮。以下提供了8个不同风格的样式(例如,.alert-success)。对于删除,使用的是alerts JavaScript插件。

<div class="alert alert-primary" role="alert">
  A simple primary alert—check it out!
</div>
<div class="alert alert-secondary" role="alert">
  A simple secondary alert—check it out!
</div>
<div class="alert alert-success" role="alert">
  A simple success alert—check it out!
</div>
<div class="alert alert-danger" role="alert">
  A simple danger alert—check it out!
</div>
<div class="alert alert-warning" role="alert">
  A simple warning alert—check it out!
</div>
<div class="alert alert-info" role="alert">
  A simple info alert—check it out!
</div>
<div class="alert alert-light" role="alert">
  A simple light alert—check it out!
</div>
<div class="alert alert-dark" role="alert">
  A simple dark alert—check it out!
</div>

在线运行

链接颜色

使用.alert-link工具类,在任何alert中快速提供匹配的彩色链接。

<div class="alert alert-primary" role="alert">
  A simple primary alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
</div>
<div class="alert alert-secondary" role="alert">
  A simple secondary alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
</div>
<div class="alert alert-success" role="alert">
  A simple success alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
</div>
<div class="alert alert-danger" role="alert">
  A simple danger alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
</div>
<div class="alert alert-warning" role="alert">
  A simple warning alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
</div>
<div class="alert alert-info" role="alert">
  A simple info alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
</div>
<div class="alert alert-light" role="alert">
  A simple light alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
</div>
<div class="alert alert-dark" role="alert">
  A simple dark alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
</div>

在线运行

添加其它内容

Alerts还可以包含额外的HTML元素,如标题、段落和分隔符。

<div class="alert alert-success" role="alert">
  <h4 class="alert-heading">Well done!</h4>
  <p>Aww yeah, you successfully read this important alert message. This example text is going to run a bit longer so that you can see how spacing within an alert works with this kind of content.</p>
  <hr>
  <p class="mb-0">Whenever you need to, be sure to use margin utilities to keep things nice and tidy.</p>
</div>

在线运行

Icons

同样的,你可以使用flexbox工具Bootstrap图标来创建带有图标的alerts。根据你的图标和内容,你可以添加更多的自定义样式。

<div class="alert alert-primary d-flex align-items-center" role="alert">
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="bi bi-exclamation-triangle-fill flex-shrink-0 me-2" viewBox="0 0 16 16" role="img" aria-label="Warning:">
    <path d="M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"/>
  </svg>
  <div>
    An example alert with an icon
  </div>
</div>

在线运行

你的Alerts需要不止一个图标?考虑使用更多的Bootstrap图标,并像这样制作一个本地SVG精灵,以方便重复引用相同的图标。

<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
  <symbol id="check-circle-fill" fill="currentColor" viewBox="0 0 16 16">
    <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z"/>
  </symbol>
  <symbol id="info-fill" fill="currentColor" viewBox="0 0 16 16">
    <path d="M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16zm.93-9.412-1 4.705c-.07.34.029.533.304.533.194 0 .487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703 0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"/>
  </symbol>
  <symbol id="exclamation-triangle-fill" fill="currentColor" viewBox="0 0 16 16">
    <path d="M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"/>
  </symbol>
</svg>

<div class="alert alert-primary d-flex align-items-center" role="alert">
  <svg class="bi flex-shrink-0 me-2" width="24" height="24" role="img" aria-label="Info:"><use xlink:href="#info-fill"/></svg>
  <div>
    An example alert with an icon
  </div>
</div>
<div class="alert alert-success d-flex align-items-center" role="alert">
  <svg class="bi flex-shrink-0 me-2" width="24" height="24" role="img" aria-label="Success:"><use xlink:href="#check-circle-fill"/></svg>
  <div>
    An example success alert with an icon
  </div>
</div>
<div class="alert alert-warning d-flex align-items-center" role="alert">
  <svg class="bi flex-shrink-0 me-2" width="24" height="24" role="img" aria-label="Warning:"><use xlink:href="#exclamation-triangle-fill"/></svg>
  <div>
    An example warning alert with an icon
  </div>
</div>
<div class="alert alert-danger d-flex align-items-center" role="alert">
  <svg class="bi flex-shrink-0 me-2" width="24" height="24" role="img" aria-label="Danger:"><use xlink:href="#exclamation-triangle-fill"/></svg>
  <div>
    An example danger alert with an icon
  </div>
</div>

在线运行

关闭Alert(Dismissing)

使用alert JavaScript插件,可以在内联中关闭任何alert。下面是方法。

  • 请确保你已经加载了alert插件,或编译了Bootstrap的JavaScript。
  • 添加一个关闭按钮和.alert-dismissible类,它在alert的右边添加额外的填充,并定位关闭按钮。
  • 在关闭按钮上,添加data-dismiss="alert"属性,这将触发JavaScript功能。请确保使用<button>元素,以便在所有设备上有正确的行为。
  • 要想在关闭alerts时将其变成动画,请务必添加.fade.show类。

以下是演示效果:

<div class="alert alert-warning alert-dismissible fade show" role="alert">
  <strong>Holy guacamole!</strong> You should check in on some of those fields below.
  <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>

在线运行

JavaScript behavior

触发器

通过JavaScript关闭alert的功能:

var alertList = document.querySelectorAll('.alert')
alertList.forEach(function (alert) {
  new bootstrap.Alert(alert)
})

或在alert内的button上加上data属性,如上所示:

<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>

在线运行

请注意,关闭alert会将其从DOM中删除。

方法

例如,你可以使用alert构造函数创建一个alert实例。

var myAlert = document.getElementById('myAlert')
var bsAlert = new bootstrap.Alert(myAlert)

在线运行

这使得alert听从具有data-bs-dismiss="alert"属性的子元素上的点击事件。(在使用data-api的自动初始化时,则没有必要)。

方法 描述
close 通过将其从DOM中移除来关闭一个alert。如果元素上有.fade.show类,alert会在被移除前淡出。
dispose 销毁一个元素的alert。
getInstance 静态方法,允许你获得与DOM元素相关的警报实例,你可以像这样使用: bootstrap.Alert.getInstance(alert)
getOrCreateInstance 静态方法,返回一个与DOM元素相关的警报实例,或者在它没有被初始化的情况下创建一个新的实例。你可以像这样使用它: bootstrap.Alert.getOrCreateInstance(element)

事件

Bootstrap的警报插件暴露了一些事件,以便与警报功能挂钩。

事件 描述
close.bs.alert 当关闭实例方法被调用时立即触发。
closed.bs.alert 当警报被关闭且CSS转换完成时触发。
var myAlert = document.getElementById('myAlert')
myAlert.addEventListener('closed.bs.alert', function () {
  // do something…
})

在线运行

更新于 2023-06-12

查看bootstrap5更多相关的文章或提一个关于bootstrap5的问题,也可以与我们一起分享文章