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…
})