Alerts警告
Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages.为典型用户操作提供上下文反馈消息,并提供少量可用且灵活的警报消息。
Examples例子
Alerts are available for any length of text, as well as an optional close button. 警报可用于任何长度的文本,以及可选的关闭按钮。For proper styling, use one of the eight required contextual classes (e.g., 要获得正确的样式,请使用八个必需的上下文类之一(例如,.alert-success
). .alert-success
)。For inline dismissal, use the alerts JavaScript plugin.对于内联解雇,请使用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>
Conveying meaning to assistive technologies向辅助技术传达意义
Using color to add meaning only provides a visual indication, which will not be conveyed to users of assistive technologies – such as screen readers. 使用颜色来增加意义只能提供视觉指示,而不会传达给屏幕阅读器等辅助技术的用户。Ensure that information denoted by the color is either obvious from the content itself (e.g. the visible text), or is included through alternative means, such as additional text hidden with the 确保由颜色表示的信息在内容本身(例如可见文本)中是明显的,或者通过其他方式包括,例如使用.visually-hidden
class..visually-hidden
类隐藏的其他文本。
Live example实例
Click the button below to show an alert (hidden with inline styles to start), then dismiss (and destroy) it with the built-in close button.单击下面的按钮以显示警报(隐藏,以内联样式开始),然后使用内置的关闭按钮将其关闭(并销毁)。
<button type="button" class="btn btn-primary" id="liveAlertBtn">Show live alert</button>
<div class="alert alert-primary alert-dismissible" role="alert" id="liveAlert">
<strong>Nice!</strong> You've triggered this alert.
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
We use the following JavaScript to trigger our live alert demo:我们使用以下JavaScript触发实时警报演示:
var alertPlaceholder = document.getElementById('liveAlertPlaceholder')
var alertTrigger = document.getElementById('liveAlertBtn')
function alert(message, type) {
var wrapper = document.createElement('div')
wrapper.innerHTML = '<div class="alert alert-' + type + ' alert-dismissible" role="alert">' + message + '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div>'
alertPlaceholder.append(wrapper)
}
if (alertTrigger) {
alertTrigger.addEventListener('click', function () {
alert('Nice, you triggered this alert message!', 'success')
})
}
Link color链接颜色
Use the 使用.alert-link
utility class to quickly provide matching colored links within any alert..alert-link
实用程序类在任何警报中快速提供匹配的彩色链接。
<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>
Additional content附加内容
Alerts can also contain additional HTML elements like headings, paragraphs and dividers.警报还可以包含其他HTML元素,如标题、段落和分隔符。
Well done!
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.此示例文本将运行更长的时间,以便您可以看到警报中的间距如何与此类内容配合使用。
Whenever you need to, be sure to use margin utilities to keep things nice and tidy.当你需要的时候,一定要使用边距工具来保持事物的整洁。
<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图标
Similarly, you can use flexbox utilities and Bootstrap Icons to create alerts with icons. 类似地,您可以使用flexbox实用程序和Bootstrap图标创建带有图标的警报。Depending on your icons and content, you may want to add more utilities or custom styles.根据图标和内容,您可能需要添加更多实用程序或自定义样式。
<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>
Need more than one icon for your alerts? 您的警报需要多个图标吗?Consider using more Bootstrap Icons and making a local SVG sprite like so to easily reference the same icons repeatedly.考虑使用更多的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>
Dismissing撤除
Using the alert JavaScript plugin, it’s possible to dismiss any alert inline. Here’s how:使用alert JavaScript插件,可以消除任何内嵌警报。以下是方法:
Be sure you’ve loaded the alert plugin, or the compiled Bootstrap JavaScript.确保已加载警报插件或已编译的BootstrapJavaScript。Add a close button and the添加一个close按钮和.alert-dismissible
class, which adds extra padding to the right of the alert and positions the close button..alert-dismissible
类,该类在警报右侧添加额外的填充,并定位关闭按钮。On the close button, add the在关闭按钮上,添加数据data-bs-dismiss="alert"
attribute, which triggers the JavaScript functionality.data-bs-dismiss="alert"
属性,该属性触发JavaScript功能。Be sure to use the请务必使用<button>
element with it for proper behavior across all devices.<button>
元素,以便在所有设备上正常运行。To animate alerts when dismissing them, be sure to add the要在解除警报时设置警报动画,请确保添加.fade
and.show
classes..fade
和.show
类。
You can see this in action with a live demo:您可以在现场演示中看到这一点:
<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>
closed.bs.alert
event and programmatically sets focus()
to the most appropriate location in the page. closed.bs.alert
事件并以编程方式将focus()
设置为页面中最合适位置的额外JavaScript。tabindex="-1"
to the element.tabindex="-1"
。
Sass
Variables变量
$alert-padding-y: $spacer;
$alert-padding-x: $spacer;
$alert-margin-bottom: 1rem;
$alert-border-radius: $border-radius;
$alert-link-font-weight: $font-weight-bold;
$alert-border-width: $border-width;
$alert-bg-scale: -80%;
$alert-border-scale: -70%;
$alert-color-scale: 40%;
$alert-dismissible-padding-r: $alert-padding-x * 3; // 3x covers width of x plus default padding on either side
Variant mixin变异杂合体
Used in combination with 与$theme-colors
to create contextual modifier classes for our alerts.$theme-colors
结合使用,为我们的警报创建上下文修改器类。
@mixin alert-variant($background, $border, $color) {
color: $color;
@include gradient-bg($background);
border-color: $border;
.alert-link {
color: shade-color($color, 20%);
}
}
Loop
Loop that generates the modifier classes with the 使用alert-variant()
mixin.alert-variant()
mixin生成修改器类的循环。
// Generate contextual modifier classes for colorizing the alert.
@each $state, $value in $theme-colors {
$alert-background: shift-color($value, $alert-bg-scale);
$alert-border: shift-color($value, $alert-border-scale);
$alert-color: shift-color($value, $alert-color-scale);
@if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) {
$alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale));
}
.alert-#{$state} {
@include alert-variant($alert-background, $alert-border, $alert-color);
}
}
JavaScript behavior
Initialize初始化
Initialize elements as alerts将元素初始化为警报
var alertList = document.querySelectorAll('.alert')
var alerts = [].slice.call(alertList).map(function (element) {
return new bootstrap.Alert(element)
})
For the sole purpose of dismissing an alert, it isn’t necessary to initialize the component manually via the JS API. 仅出于解除警报的目的,不需要通过JSAPI手动初始化组件。By making use of 通过使用数据data-bs-dismiss="alert"
, the component will be initialized automatically and properly dismissed.data-bs-dismiss="alert"
,该组件将自动初始化并正确关闭。
See the triggers section for more details.有关更多详细信息,请参阅触发器部分。
Triggers触发器
Dismissal can be achieved with the 可通过警报内按钮上的data
attribute on a button within the alert as demonstrated below:data
属性实现解雇,如下所示:
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
or on a button outside the alert using the 或在警报外的按钮上使用data-bs-target
as demonstrated below:data-bs-target
,如下所示:
<button type="button" class="btn-close" data-bs-dismiss="alert" data-bs-target="#my-alert" aria-label="Close"></button>
Note that closing an alert will remove it from the DOM.请注意,关闭警报会将其从DOM中删除。
Methods方法
close | .fade and .show classes are present on the element, the alert will fade out before it is removed..fade 和.show 类,则警报将在删除之前淡出。 |
dispose | |
getInstance | bootstrap.Alert.getInstance(alert) |
getOrCreateInstance | bootstrap.Alert.getOrCreateInstance(element) |
var alertNode = document.querySelector('.alert')
var alert = bootstrap.Alert.getInstance(alertNode)
alert.close()
Events事件
Bootstrap’s alert plugin exposes a few events for hooking into alert functionality.Bootstrap的警报插件公开了一些事件,用于连接警报功能。
close.bs.alert | close instance method is called.close 实例方法时立即激发。 |
closed.bs.alert |
var myAlert = document.getElementById('myAlert')
myAlert.addEventListener('closed.bs.alert', function () {
// do something, for instance, explicitly move focus to the most appropriate element,
// so it doesn't get lost/reset to the start of the page
// document.getElementById('...').focus()
})