Известувања
Обезбедете контекстуални пораки за повратни информации за типични кориснички дејства со неколку достапни и флексибилни пораки за предупредување.
Примери
Достапни се предупредувања за која било должина на текст, како и опционално копче за затворање. За правилен стајлинг, користете една од осумте потребни контекстуални класи (на пр., .alert-success
). За внатрешно отпуштање, користете го приклучокот 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>
Пренесување значење на помошните технологии
Користењето боја за додавање значење обезбедува само визуелна индикација, која нема да биде пренесена до корисниците на помошни технологии - како што се читачите на екранот. Осигурајте се дека информациите означени со бојата се или очигледни од самата содржина (на пр. видлив текст), или се вклучени преку алтернативни средства, како што е дополнителен текст скриен со .visually-hidden
класата.
Жив пример
Кликнете на копчето подолу за да прикажете предупредување (скриено со вградени стилови за почеток), потоа отфрлете го (и уништите) со вграденото копче за затворање.
<div id="liveAlertPlaceholder"></div>
<button type="button" class="btn btn-primary" id="liveAlertBtn">Show live alert</button>
Го користиме следниов JavaScript за да го активираме нашето демо за предупредување во живо:
const alertPlaceholder = document.getElementById('liveAlertPlaceholder')
const alert = (message, type) => {
const wrapper = document.createElement('div')
wrapper.innerHTML = [
`<div class="alert alert-${type} alert-dismissible" role="alert">`,
` <div>${message}</div>`,
' <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>',
'</div>'
].join('')
alertPlaceholder.append(wrapper)
}
const alertTrigger = document.getElementById('liveAlertBtn')
if (alertTrigger) {
alertTrigger.addEventListener('click', () => {
alert('Nice, you triggered this alert message!', 'success')
})
}
Боја на врската
Користете ја .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>
Дополнителна содржина
Известувањата може да содржат и дополнителни 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>
Икони
Слично на тоа, можете да ги користите алатките за flexbox и Bootstrap Icons за да креирате предупредувања со икони. Во зависност од вашите икони и содржина, можеби ќе сакате да додадете повеќе алатки или сопствени стилови.
<div class="alert alert-primary d-flex align-items-center" role="alert">
<svg xmlns="http://www.w3.org/2000/svg" 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>
Ви треба повеќе од една икона за вашите предупредувања? Размислете за користење на повеќе Bootstrap икони и правење локален SVG sprite како таков за лесно да ги повикувате истите икони постојано.
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="check-circle-fill" 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" 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" 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" 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" 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" 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" role="img" aria-label="Danger:"><use xlink:href="#exclamation-triangle-fill"/></svg>
<div>
An example danger alert with an icon
</div>
</div>
Отфрлање
Користејќи го приклучокот за предупредување JavaScript, можно е да се отфрли секое предупредување внатре. Еве како:
- Бидете сигурни дека сте го вчитале приклучокот за предупредување или компајлираниот Bootstrap JavaScript.
- Додајте копче за затворање и
.alert-dismissible
класа, која додава дополнително полнење десно од предупредувањето и го позиционира копчето за затворање. - На копчето за затворање, додадете го
data-bs-dismiss="alert"
атрибутот, кој ја активира функционалноста на JavaScript. Не заборавајте да го користите<button>
елементот со него за правилно однесување на сите уреди. - За да ги анимирате предупредувањата кога ги отфрлате, задолжително додајте ги
.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>
closed.bs.alert
настанот и програмски се поставува
focus()
на најсоодветната локација на страницата. Ако планирате да го преместите фокусот на неинтеактивен елемент кој вообичаено не добива фокус, погрижете се да го додадете
tabindex="-1"
во елементот.
CSS
Променливи
Додадено во v5.2.0Како дел од пристапот на еволуирачки CSS променливи на Bootstrap, предупредувањата сега користат локални CSS променливи .alert
за подобрено прилагодување во реално време. Вредностите за променливите CSS се поставени преку Sass, така што прилагодувањето на Sass сè уште е поддржано.
--#{$prefix}alert-bg: transparent;
--#{$prefix}alert-padding-x: #{$alert-padding-x};
--#{$prefix}alert-padding-y: #{$alert-padding-y};
--#{$prefix}alert-margin-bottom: #{$alert-margin-bottom};
--#{$prefix}alert-color: inherit;
--#{$prefix}alert-border-color: transparent;
--#{$prefix}alert-border: #{$alert-border-width} solid var(--#{$prefix}alert-border-color);
--#{$prefix}alert-border-radius: #{$alert-border-radius};
Sass променливи
$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
Sass mixin
Се користи во комбинација со $theme-colors
за создавање класи на контекстуални модификатори за нашите предупредувања.
@mixin alert-variant($background, $border, $color) {
--#{$prefix}alert-color: #{$color};
--#{$prefix}alert-bg: #{$background};
--#{$prefix}alert-border-color: #{$border};
@if $enable-gradients {
background-image: var(--#{$prefix}gradient);
}
.alert-link {
color: shade-color($color, 20%);
}
}
Sass јамка
Јамка што ги генерира класите на модификаторите со alert-variant()
миксинот.
// 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
Иницијализирај
Иницијализирајте елементи како предупредувања
const alertList = document.querySelectorAll('.alert')
const alerts = [...alertList].map(element => new bootstrap.Alert(element))
Со единствена цел да се отфрли предупредување, не е неопходно рачно да се иницијализира компонентата преку JS API. Со користење на data-bs-dismiss="alert"
, компонентата ќе се иницијализира автоматски и правилно ќе се отфрли.
Погледнете го делот за предизвикувачи за повеќе детали.
Предизвикувачи
Отфрлањето може да се постигне со data
атрибутот на копче во рамките на предупредувањето како што е прикажано подолу:
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
или на копче надвор од предупредувањето користејќи го data-bs-target
како што е прикажано подолу:
<button type="button" class="btn-close" data-bs-dismiss="alert" data-bs-target="#my-alert" aria-label="Close"></button>
Имајте предвид дека затворањето на предупредувањето ќе го отстрани од DOM.
Методи
Можете да креирате пример за предупредување со конструкторот за предупредување, на пример:
const bsAlert = new bootstrap.Alert('#myAlert')
Ова го прави предупредувањето да слуша за настани со кликнување на елементите потомци кои го имаат data-bs-dismiss="alert"
атрибутот. (Не е потребно кога се користи автоматската иницијализација на data-api.)
Метод | Опис |
---|---|
close |
Затвора предупредување со отстранување од DOM. Ако класите .fade и .show се присутни на елементот, предупредувањето ќе избледи пред да се отстрани. |
dispose |
Уништува предупредување за елемент. (Ги отстранува зачуваните податоци на елементот DOM) |
getInstance |
Статички метод кој ви овозможува да ја добиете инстанцата за предупредување поврзана со елементот DOM. На пример: bootstrap.Alert.getInstance(alert) . |
getOrCreateInstance |
Статички метод кој враќа инстанца за предупредување поврзана со елемент DOM или создава нов во случај да не е иницијализиран. Можете да го користите вака bootstrap.Alert.getOrCreateInstance(element) :. |
Основна употреба:
const alert = bootstrap.Alert.getOrCreateInstance('#myAlert')
alert.close()
Настани
Приклучокот за предупредување на Bootstrap изложува неколку настани за приклучување на функционалноста за предупредување.
Настан | Опис |
---|---|
close.bs.alert |
Запали веднаш кога close ќе се повика методот на пример. |
closed.bs.alert |
Се активира кога предупредувањето е затворено и CSS транзициите се завршени. |
const myAlert = document.getElementById('myAlert')
myAlert.addEventListener('closed.bs.alert', event => {
// 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()
})