Alerts
Колдонуучунун типтүү аракеттери үчүн контексттик пикир билдирүүлөрүн жеткиликтүү жана ийкемдүү эскертүү билдирүүлөрү менен камсыз кылыңыз.
Мисалдар
Эскертүүлөр тексттин каалаган узундугу үчүн жеткиликтүү, ошондой эле кошумча жабуу баскычы. Туура стилдөө үчүн талап кылынган сегиз контексттик класстын бирин колдонуңуз (мисалы, .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 спрайтын жасоону карап көрүңүз.
<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
орноткон
кошумча JavaScriptти кошууну сунуштайбыз. focus()
Эгерде сиз фокусту демейде фокус албаган интерактивдүү эмес элементке жылдырууну пландап жатсаңыз,
tabindex="-1"
элементке кошууну унутпаңыз.
CSS
Өзгөрмөлөр
v5.2.0 кошулганBootstrap өнүгүп жаткан CSS өзгөрмөлөрүнүн бир бөлүгү катары, эскертүүлөр эми .alert
реалдуу убакытта жакшыртылган ыңгайлаштыруу үчүн жергиликтүү CSS өзгөрмөлөрүн колдонот. 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 автоматтык түрдө инициализациясын колдонууда зарыл эмес.)
Метод | Description |
---|---|
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'тин эскертүү плагини эскертүү функциясына кирүү үчүн бир нече окуяларды ачып берет.
Окуя | Description |
---|---|
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()
})