Perspėjimai
Pateikite kontekstinius grįžtamojo ryšio pranešimus apie tipiškus vartotojo veiksmus naudodami keletą galimų ir lanksčių įspėjimų pranešimų.
Pavyzdžiai
Galimi įspėjimai apie bet kokio ilgio tekstą, taip pat pasirenkamas uždarymo mygtukas. Norėdami sukurti tinkamą stilių, naudokite vieną iš aštuonių būtinų kontekstinių klasių (pvz., .alert-success
). Jei norite atmesti, naudokite įspėjimų „JavaScript“ papildinį .
<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>
Pagalbinių technologijų prasmės perteikimas
Spalvų naudojimas reikšmei pridėti suteikia tik vaizdinę nuorodą, kuri nebus perduota pagalbinių technologijų, pvz., ekrano skaitytuvų, naudotojams. Užtikrinkite, kad informacija, pažymėta spalva, būtų akivaizdi iš paties turinio (pvz., matomas tekstas), arba būtų įtraukta naudojant alternatyvias priemones, pvz., papildomą tekstą, paslėptą .visually-hidden
klasėje.
Gyvas pavyzdys
Spustelėkite toliau esantį mygtuką, kad būtų rodomas įspėjimas (paslėptas naudojant eilutinius stilius, kad pradėtumėte), tada atmeskite (ir sunaikinkite) jį naudodami integruotą uždarymo mygtuką.
<div id="liveAlertPlaceholder"></div>
<button type="button" class="btn btn-primary" id="liveAlertBtn">Show live alert</button>
Mes naudojame šią „JavaScript“, kad suaktyvintume tiesioginio įspėjimo demonstraciją:
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')
})
}
Nuorodos spalva
Naudokite .alert-link
naudingumo klasę, kad greitai pateiktumėte atitinkamas spalvotas nuorodas bet kuriame įspėjime.
<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>
Papildomas turinys
Įspėjimuose taip pat gali būti papildomų HTML elementų, tokių kaip antraštės, pastraipos ir skyrikliai.
Šauniai padirbėta!
Taip, sėkmingai perskaitėte šį svarbų įspėjimo pranešimą. Šis pavyzdinis tekstas bus rodomas šiek tiek ilgiau, kad galėtumėte pamatyti, kaip tarpai įspėjime veikia su tokio tipo turiniu.
Kai tik reikia, būtinai naudokite maržos komunalines priemones, kad viskas būtų gražu ir tvarkinga.
<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>
Piktogramos
Panašiai galite naudoti „flexbox“ paslaugų programas ir „ Bootstrap Icons “, kad sukurtumėte įspėjimus su piktogramomis. Atsižvelgiant į piktogramas ir turinį, galbūt norėsite pridėti daugiau paslaugų arba pasirinktinių stilių.
<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>
Reikia daugiau nei vienos piktogramos įspėjimams? Apsvarstykite galimybę naudoti daugiau „Bootstrap“ piktogramų ir sukurti vietinį SVG „spraite“, kad galėtumėte pakartotinai naudoti tas pačias piktogramas.
<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>
Atleidimas
Naudojant įspėjimo „JavaScript“ papildinį, galima atmesti bet kokį įspėjimą. Štai kaip:
- Įsitikinkite, kad įkėlėte įspėjimo papildinį arba sukompiliuotą „Bootstrap JavaScript“.
- Pridėkite uždarymo mygtuką ir
.alert-dismissible
klasę, kuri prideda papildomo užpildymo įspėjimo dešinėje ir uždarykite mygtuką. - Uždaryti mygtuką pridėkite
data-bs-dismiss="alert"
atributą, kuris suaktyvina „JavaScript“ funkciją. Būtinai naudokite<button>
elementą su juo, kad tinkamai veiktų visuose įrenginiuose. - Norėdami suaktyvinti įspėjimus, kai juos atsisakote, būtinai pridėkite
.fade
ir.show
klases.
Galite pamatyti tai veikiant tiesioginėje demonstracijoje:
<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
įvykį ir programiškai nustato
focus()
tinkamiausią puslapio vietą. Jei planuojate perkelti fokusą į neinteraktyvų elementą, kuris paprastai nesufokusuojamas, būtinai pridėkite
tabindex="-1"
elementą.
CSS
Kintamieji
Pridėta 5.2.0 versijojeKaip „Bootstrap“ besivystančio CSS kintamųjų metodo dalis, įspėjimuose dabar naudojami vietiniai CSS kintamieji, .alert
kad būtų galima patobulinti tinkinimą realiuoju laiku. CSS kintamųjų reikšmės nustatomos naudojant Sass, todėl Sass tinkinimas vis dar palaikomas.
--#{$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 kintamieji
$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
Naudojamas kartu su $theme-colors
mūsų įspėjimų kontekstinio modifikavimo klasėms sukurti.
@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 kilpa
Ciklas, generuojantis modifikatorių klases su 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 elgesys
Inicijuoti
Inicijuoti elementus kaip įspėjimus
const alertList = document.querySelectorAll('.alert')
const alerts = [...alertList].map(element => new bootstrap.Alert(element))
Vien tik norint atmesti įspėjimą, nebūtina inicijuoti komponento rankiniu būdu naudojant JS API. Naudojant data-bs-dismiss="alert"
, komponentas bus inicijuotas automatiškai ir tinkamai atmestas.
Daugiau informacijos rasite trigerių skyriuje.
Trigeriai
Atleisti galima naudojant įspėjimodata
mygtuko atributą, kaip parodyta toliau:
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
arba ant perspėjimo ribų esančiame mygtuke, naudojant data-bs-target
kaip parodyta toliau:
<button type="button" class="btn-close" data-bs-dismiss="alert" data-bs-target="#my-alert" aria-label="Close"></button>
Atminkite, kad uždarius įspėjimą jis bus pašalintas iš DOM.
Metodai
Galite sukurti įspėjimo egzempliorių naudodami įspėjimo konstruktorių, pavyzdžiui:
const bsAlert = new bootstrap.Alert('#myAlert')
Tai priverčia perspėjimą įsiklausyti į palikuonių elementų, turinčių data-bs-dismiss="alert"
atributą, paspaudimų įvykius. (Nebūtina, kai naudojamas duomenų API automatinis inicijavimas.)
Metodas | apibūdinimas |
---|---|
close |
Perspėjimas uždaromas pašalinus jį iš DOM. Jei elemente yra .fade ir .show klasės, įspėjimas išnyks prieš jį pašalinant. |
dispose |
Sunaikina elemento įspėjimą. (Pašalina saugomus duomenis DOM elemente) |
getInstance |
Statinis metodas, leidžiantis gauti įspėjimo egzempliorių, susietą su DOM elementu. Pavyzdžiui bootstrap.Alert.getInstance(alert) :. |
getOrCreateInstance |
Statinis metodas, kuris grąžina įspėjimo egzempliorių, susietą su DOM elementu, arba sukuria naują, jei jis nebuvo inicijuotas. Galite naudoti taip: bootstrap.Alert.getOrCreateInstance(element) . |
Pagrindinis naudojimas:
const alert = bootstrap.Alert.getOrCreateInstance('#myAlert')
alert.close()
Renginiai
„Bootstrap“ įspėjimo papildinys atskleidžia keletą įvykių, kad būtų galima prisijungti prie įspėjimo funkcijų.
Renginys | apibūdinimas |
---|---|
close.bs.alert |
Suveikia iš karto, kai close iškviečiamas egzemplioriaus metodas. |
closed.bs.alert |
Suaktyvinama, kai įspėjimas buvo uždarytas ir CSS perėjimai baigti. |
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()
})