Brīdinājumi
Sniedziet kontekstuālus atgriezeniskās saites ziņojumus tipiskām lietotāja darbībām, izmantojot nedaudzus pieejamus un elastīgus brīdinājuma ziņojumus.
Piemēri
Brīdinājumi ir pieejami jebkura garuma tekstam, kā arī izvēles aizvēršanas poga. Pareizam stilam izmantojiet vienu no astoņām obligātajām kontekstuālajām klasēm (piemēram, .alert-success
). Iekļautai atlaišanai izmantojiet brīdinājumu JavaScript spraudni .
<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>
Nozīmes nodošana palīgtehnoloģijām
Krāsu izmantošana nozīmes pievienošanai nodrošina tikai vizuālu norādi, kas netiks nodota palīgtehnoloģiju lietotājiem, piemēram, ekrāna lasītājiem. Pārliecinieties, ka informācija, kas apzīmēta ar krāsu, ir vai nu acīmredzama no paša satura (piemēram, redzamā teksta), vai arī tiek iekļauta, izmantojot alternatīvus līdzekļus, piemēram, papildu tekstu, kas paslēpts kopā ar .visually-hidden
klasi.
Dzīvs piemērs
Noklikšķiniet uz tālāk esošās pogas, lai parādītu brīdinājumu (lai sāktu, paslēpts ar iekļautajiem stiliem), pēc tam atlaidiet (un iznīciniet) to, izmantojot iebūvēto aizvēršanas pogu.
<div id="liveAlertPlaceholder"></div>
<button type="button" class="btn btn-primary" id="liveAlertBtn">Show live alert</button>
Mēs izmantojam šādu JavaScript, lai aktivizētu mūsu tiešsaistes brīdinājuma demonstrāciju:
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')
})
}
Saites krāsa
Izmantojiet .alert-link
lietderības klasi, lai jebkurā brīdinājumā ātri nodrošinātu atbilstošas krāsas saites.
<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>
Papildu saturs
Brīdinājumi var saturēt arī papildu HTML elementus, piemēram, virsrakstus, rindkopas un atdalītājus.
Labi padarīts!
Ak, jā, jūs veiksmīgi izlasījāt šo svarīgo brīdinājuma ziņojumu. Šis teksta paraugs darbosies nedaudz ilgāk, lai jūs varētu redzēt, kā brīdinājuma atstarpes darbojas ar šāda veida saturu.
Ikreiz, kad nepieciešams, noteikti izmantojiet rezerves pakalpojumus, lai lietas būtu jaukas un sakārtotas.
<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>
Ikonas
Tāpat varat izmantot flexbox utilītas un Bootstrap ikonas , lai izveidotu brīdinājumus ar ikonām. Atkarībā no ikonām un satura, iespējams, vēlēsities pievienot vairāk utilītu vai pielāgotu stilu.
<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>
Brīdinājumiem nepieciešama vairāk nekā viena ikona? Apsveriet iespēju izmantot vairāk Bootstrap ikonu un izveidot līdzīgu lokālu SVG sprite, lai viegli atkārtoti atsauktos uz tām pašām ikonām.
<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>
Notiek atlaišana
Izmantojot brīdinājuma JavaScript spraudni, ir iespējams noraidīt visus iekļautos brīdinājumus. Lūk, kā to izdarīt:
- Pārliecinieties, vai esat ielādējis brīdinājuma spraudni vai kompilēto Bootstrap JavaScript.
- Pievienojiet aizvēršanas pogu un
.alert-dismissible
klasi, kas pievieno papildu polsterējumu brīdinājuma labajā pusē un novieto aizvēršanas pogu. - Aizvēršanas pogā pievienojiet
data-bs-dismiss="alert"
atribūtu, kas aktivizē JavaScript funkcionalitāti. Noteikti izmantojiet<button>
elementu kopā ar to, lai nodrošinātu pareizu darbību visās ierīcēs. - Lai animētu brīdinājumus, tos noraidot, noteikti pievienojiet
.fade
un.show
klases.
To var redzēt darbībā, izmantojot tiešraides demonstrāciju:
<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
notikumu un programmatiski iestata
focus()
vispiemērotāko vietu lapā. Ja plānojat pārvietot fokusu uz neinteraktīvu elementu, kas parasti netiek fokusēts, noteikti pievienojiet
tabindex="-1"
elementu.
CSS
Mainīgie
Pievienots v5.2.0Kā daļa no Bootstrap attīstošās CSS mainīgo pieejas, brīdinājumos tagad tiek izmantoti vietējie CSS mainīgie, .alert
lai uzlabotu reāllaika pielāgošanu. CSS mainīgo vērtības tiek iestatītas, izmantojot Sass, tāpēc joprojām tiek atbalstīta arī Sass pielāgošana.
--#{$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 mainīgie
$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
Izmanto kopā ar $theme-colors
, lai izveidotu kontekstuālo modifikatoru klases mūsu brīdinājumiem.
@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 cilpa
Cilpa, kas ģenerē modifikatoru klases ar 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 uzvedība
Palaist
Inicializējiet elementus kā brīdinājumus
const alertList = document.querySelectorAll('.alert')
const alerts = [...alertList].map(element => new bootstrap.Alert(element))
Lai tikai noraidītu brīdinājumu, komponents nav jāinicializē manuāli, izmantojot JS API. Izmantojot data-bs-dismiss="alert"
, komponents tiks automātiski inicializēts un pareizi noraidīts.
Plašāku informāciju skatiet trigeru sadaļā.
Trigeri
Atlaišanu var panākt , izmantojot brīdinājumadata
pogas atribūtu, kā parādīts tālāk:
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
vai uz pogas ārpus brīdinājuma , izmantojot data-bs-target
tālāk norādīto:
<button type="button" class="btn-close" data-bs-dismiss="alert" data-bs-target="#my-alert" aria-label="Close"></button>
Ņemiet vērā, ka, aizverot brīdinājumu, tas tiks noņemts no DOM.
Metodes
Varat izveidot brīdinājuma gadījumu, izmantojot brīdinājuma konstruktoru, piemēram:
const bsAlert = new bootstrap.Alert('#myAlert')
Tas liek brīdinājumam noklausīties klikšķu notikumus pēcnācēju elementos, kuriem ir data-bs-dismiss="alert"
atribūts. (Nav nepieciešams, ja tiek izmantota datu api automātiskā inicializēšana.)
Metode | Apraksts |
---|---|
close |
Aizver brīdinājumu, noņemot to no DOM. Ja elementā ir .fade un .show klases, brīdinājums pazudīs pirms tā noņemšanas. |
dispose |
Iznīcina elementa brīdinājumu. (Noņem DOM elementā saglabātos datus) |
getInstance |
Statiskā metode, kas ļauj iegūt brīdinājuma gadījumu, kas saistīts ar DOM elementu. Piemēram bootstrap.Alert.getInstance(alert) :. |
getOrCreateInstance |
Statiskā metode, kas atgriež brīdinājuma gadījumu, kas saistīts ar DOM elementu, vai izveido jaunu, ja tas nav inicializēts. Varat to izmantot šādi: bootstrap.Alert.getOrCreateInstance(element) . |
Pamata lietojums:
const alert = bootstrap.Alert.getOrCreateInstance('#myAlert')
alert.close()
Pasākumi
Bootstrap brīdinājumu spraudnis atklāj dažus notikumus, lai piesaistītu brīdinājuma funkcionalitāti.
Pasākums | Apraksts |
---|---|
close.bs.alert |
Aktivizējas nekavējoties, kad close tiek izsaukta instances metode. |
closed.bs.alert |
Tiek aktivizēts, kad brīdinājums ir aizvērts un CSS pārejas ir pabeigtas. |
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()
})