Atentigoj
Provizu kontekstajn sugestajn mesaĝojn por tipaj uzant-agoj per la manpleno da disponeblaj kaj flekseblaj atentaj mesaĝoj.
Ekzemploj
Atentigoj disponeblas por ajna teksto, kaj ankaŭ laŭvola fermbutono. Por taŭga stilo, uzu unu el la ok bezonataj kuntekstaj klasoj (ekz., .alert-success
). Por enlinia maldungo, uzu la alarmojn JavaScript-kromaĵon .
<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>
Transdonante signifon al helpaj teknologioj
Uzi koloron por aldoni signifon nur provizas vidan indikon, kiu ne estos transdonita al uzantoj de helpaj teknologioj - kiel ekranlegiloj. Certigu, ke informoj indikitaj per la koloro estas aŭ evidenta de la enhavo mem (ekz. la videbla teksto), aŭ estas inkluzivita per alternativaj rimedoj, kiel aldona teksto kaŝita kun la .visually-hidden
klaso.
Viva ekzemplo
Alklaku la suban butonon por montri alarmon (kaŝitan kun enliniaj stiloj por komenci), poste forĵetu (kaj detruu) ĝin per la enkonstruita fermbutono.
<div id="liveAlertPlaceholder"></div>
<button type="button" class="btn btn-primary" id="liveAlertBtn">Show live alert</button>
Ni uzas la jenan JavaScript por ekigi nian vivan atentigdemonstraĵon:
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')
})
}
Ligokoloro
Uzu la .alert-link
utilan klason por rapide provizi kongruajn kolorajn ligilojn ene de ajna atentigo.
<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>
Plia enhavo
Atentigoj ankaŭ povas enhavi pliajn HTML-elementojn kiel titolojn, alineojn kaj dividojn.
Bone farita!
Ho jes, vi sukcese legis ĉi tiun gravan atentan mesaĝon. Ĉi tiu ekzempla teksto daŭros iom pli longe por ke vi povu vidi kiel interspacigo ene de atentigo funkcias kun ĉi tiu speco de enhavo.
Kiam ajn vi bezonas, nepre uzu marĝenajn utilecojn por konservi aferojn belaj kaj ordaj.
<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>
Ikonoj
Simile, vi povas uzi flexbox-servaĵojn kaj Bootstrap-Ikonojn por krei atentigojn per ikonoj. Depende de viaj ikonoj kaj enhavo, vi eble volas aldoni pliajn ilojn aŭ kutimajn stilojn.
<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>
Ĉu vi bezonas pli ol unu ikonon por viaj atentigoj? Konsideru uzi pli da Bootstrap-Ikonoj kaj fari lokan SVG-spriton tiel por facile referenci la samajn ikonojn ripete.
<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>
Forigo
Uzante la alarmon JavaScript kromaĵo, eblas malakcepti ajnan atentigon enlinie. Jen kiel:
- Certiĝu, ke vi ŝargis la atentan kromprogramon aŭ la kompilitan Bootstrap JavaScript.
- Aldonu fermbutonon kaj la
.alert-dismissible
klason, kiu aldonas kroman kompletigo dekstre de la atentigo kaj poziciigas la fermbutonon. - Sur la fermbutono, aldonu la
data-bs-dismiss="alert"
atributon, kiu ekigas la JavaScript-funkcion. Nepre uzu la<button>
elementon kun ĝi por taŭga konduto tra ĉiuj aparatoj. - Por animi atentigojn kiam ili forĵetas, nepre aldonu la
.fade
kaj.show
klasojn.
Vi povas vidi ĉi tion en ago kun viva 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
evento kaj programe fiksas
focus()
al la plej taŭga loko en la paĝo. Se vi planas movi fokuson al ne-interaga elemento kiu normale ne ricevas fokuson, certigu aldoni
tabindex="-1"
al la elemento.
Sass
Variabloj
$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
Varianta miksaĵo
Uzita kombine kun $theme-colors
krei kuntekstajn modifklasojn por niaj atentigoj.
@mixin alert-variant($background, $border, $color) {
color: $color;
@include gradient-bg($background);
border-color: $border;
.alert-link {
color: shade-color($color, 20%);
}
}
Buklo
Buklo kiu generas la modifklasojn kun la alert-variant()
miksaĵo.
// 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 konduto
Inicialigu
Komencu elementojn kiel atentigojn
var alertList = document.querySelectorAll('.alert')
var alerts = [].slice.call(alertList).map(function (element) {
return new bootstrap.Alert(element)
})
Por la sola celo malakcepti alarmon, ne necesas pravalorigi la komponanton permane per la JS API. Uzante data-bs-dismiss="alert"
, la komponanto estos pravigita aŭtomate kaj konvene forĵetita.
Vidu la sekcion pri ellasiloj por pliaj detaloj.
Ellasiloj
Malakcepto povas esti atingita per la data
atributo sur butono ene de la atentigo kiel montrite sube:
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
aŭ sur butono ekster la atentigo uzante la data-bs-target
kiel montrite sube:
<button type="button" class="btn-close" data-bs-dismiss="alert" data-bs-target="#my-alert" aria-label="Close"></button>
Notu, ke fermi alarmon forigos ĝin de la DOM.
Metodoj
Metodo | Priskribo |
---|---|
close |
Fermas alarmon forigante ĝin de la DOM. Se la .fade kaj .show klasoj ĉeestas sur la elemento, la atentigo forvelkos antaŭ ol ĝi estas forigita. |
dispose |
Detruas la alarmon de elemento. (Forigas konservitajn datumojn sur la DOM-elemento) |
getInstance |
Senmova metodo, kiu ebligas al vi ricevi la atentigon asociitan al DOM-elemento, vi povas uzi ĝin tiel:bootstrap.Alert.getInstance(alert) |
getOrCreateInstance |
Senmova metodo, kiu resendas atentan petskribon asociitan al DOM-elemento aŭ kreas novan se ĝi ne estis pravigita. Vi povas uzi ĝin tiel:bootstrap.Alert.getOrCreateInstance(element) |
var alertNode = document.querySelector('.alert')
var alert = bootstrap.Alert.getInstance(alertNode)
alert.close()
Eventoj
La atentiga kromaĵo de Bootstrap elmontras kelkajn eventojn por aliĝi al atentiga funkcio.
Evento | Priskribo |
---|---|
close.bs.alert |
Pafas tuj kiam la close ekzempla metodo estas vokita. |
closed.bs.alert |
Pafite kiam la atentigo estis fermita kaj CSS-transiroj finiĝis. |
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()
})