Hälytykset
Tarjoa asiayhteyteen liittyviä palauteviestejä tyypillisistä käyttäjän toimista kourallisen saatavilla olevien ja joustavien hälytysviestien avulla.
Esimerkkejä
Hälytykset ovat saatavilla minkä tahansa pituisesta tekstistä sekä valinnainen sulkemispainike. Oikean tyylin saamiseksi käytä yhtä kahdeksasta vaaditusta kontekstuaalisesta luokasta (esim. .alert-success
). Käytä ilmoitusten poistamiseen JavaScript-laajennusta .
<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>
Tarkoituksen välittäminen avustaville tekniikoille
Värien käyttö merkityksen lisäämiseen antaa vain visuaalisen osoituksen, jota ei välitetä avustavien tekniikoiden, kuten näytönlukijoiden, käyttäjille. Varmista, että värillä merkitty tieto näkyy joko itsestään sisällöstä (esim. näkyvä teksti) tai sisällytetään vaihtoehtoisin keinoin, kuten .visually-hidden
luokan mukana piilotettu lisäteksti.
Elävä esimerkki
Napsauta alla olevaa painiketta näyttääksesi ilmoituksen (piilotettu rivin sisäisillä tyyleillä aloittaaksesi), hylkää (ja tuhoa) se sisäänrakennetulla sulkemispainikkeella.
<div id="liveAlertPlaceholder"></div>
<button type="button" class="btn btn-primary" id="liveAlertBtn">Show live alert</button>
Käytämme seuraavaa JavaScriptiä live-hälytysdemon käynnistämiseen:
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')
})
}
Linkin väri
Käytä .alert-link
hyödyllisyysluokkaa tarjotaksesi nopeasti vastaavia värillisiä linkkejä mihin tahansa hälytykseen.
<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>
Lisäsisältö
Hälytykset voivat sisältää myös muita HTML-elementtejä, kuten otsikoita, kappaleita ja jakajia.
Hyvin tehty!
Aww joo, luit onnistuneesti tämän tärkeän hälytysviestin. Tämä esimerkkiteksti kestää hieman pidempään, jotta näet, kuinka hälytyksen välilyönti toimii tämäntyyppisen sisällön kanssa.
Aina kun tarvitset, muista käyttää marginaaliapuohjelmia pitääksesi asiat kauniina ja siistinä.
<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>
Kuvakkeet
Samoin voit käyttää flexbox-apuohjelmia ja Bootstrap-kuvakkeita luodaksesi hälytyksiä kuvakkeilla. Kuvakkeistasi ja sisällöstäsi riippuen saatat haluta lisätä apuohjelmia tai mukautettuja tyylejä.
<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>
Tarvitsetko useamman kuin yhden kuvakkeen hälytyksiä varten? Harkitse useampien Bootstrap-kuvakkeiden käyttöä ja paikallisen SVG-spraitin tekemistä, jotta voit viitata samoihin kuvakkeisiin toistuvasti.
<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>
Hylkääminen
Alert JavaScript -laajennuksella on mahdollista hylätä kaikki ilmoitukset. Näin:
- Varmista, että olet ladannut hälytyslaajennuksen tai käännetyn Bootstrap JavaScriptin.
- Lisää sulkemispainike ja
.alert-dismissible
luokka, joka lisää ylimääräistä täyttöä hälytyksen oikealle puolelle ja sijoittaa sulkemispainikkeen. - Lisää sulkemispainikkeeseen
data-bs-dismiss="alert"
attribuutti, joka käynnistää JavaScript-toiminnon. Muista käyttää<button>
elementtiä sen kanssa, jotta se toimii oikein kaikissa laitteissa. - Jos haluat animoida hälytyksiä, kun hylkäät ne, muista lisätä
.fade
ja.show
luokat.
Voit nähdä tämän toiminnassa live-demon avulla:
<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
tapahtumaa ja asettaa ohjelmallisesti
focus()
sopivimman sijainnin sivulla. Jos aiot siirtää kohdistuksen ei-interaktiiviseen elementtiin, joka ei normaalisti saa tarkennusta, muista lisätä
tabindex="-1"
elementtiin.
CSS
Muuttujat
Lisätty versioon 5.2.0Osana Bootstrapin kehittyvää CSS-muuttujien lähestymistapaa hälytykset käyttävät nyt paikallisia CSS-muuttujia .alert
tehostaakseen reaaliaikaista räätälöintiä. CSS-muuttujien arvot asetetaan Sassin kautta, joten myös Sass-räätälöinti on edelleen tuettu.
--#{$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 muuttujat
$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 miksaus
Käytetään yhdessä $theme-colors
luomaan kontekstuaalisia muokkausluokkia hälytyksillemme.
@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 silmukka
Silmukka, joka luo modifiointiluokat alert-variant()
mixinin kanssa.
// 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-käyttäytyminen
Alustaa
Alusta elementit hälytyksiksi
const alertList = document.querySelectorAll('.alert')
const alerts = [...alertList].map(element => new bootstrap.Alert(element))
Ainoastaan hälytyksen hylkäämistä varten komponenttia ei tarvitse alustaa manuaalisesti JS-sovellusliittymän kautta. Käytettäessä data-bs-dismiss="alert"
, komponentti alustetaan automaattisesti ja hylätään oikein.
Katso triggerit -osiosta lisätietoja.
Liipaisimet
Irtisanominen voidaan saavuttaa hälytyksendata
painikkeen määritteellä, kuten alla on esitetty:
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
tai hälytyksen ulkopuolella olevalla painikkeella data-bs-target
alla kuvatulla tavalla:
<button type="button" class="btn-close" data-bs-dismiss="alert" data-bs-target="#my-alert" aria-label="Close"></button>
Huomaa, että hälytyksen sulkeminen poistaa sen DOM:sta.
menetelmät
Voit luoda hälytysinstanssin hälytyskonstruktorilla, esimerkiksi:
const bsAlert = new bootstrap.Alert('#myAlert')
Tämä saa hälytyksen kuuntelemaan napsautustapahtumia jälkeläisissä elementeissä, joilla on data-bs-dismiss="alert"
attribuutti. (Ei välttämätöntä data-api:n automaattista alustusta käytettäessä.)
Menetelmä | Kuvaus |
---|---|
close |
Sulkee hälytyksen poistamalla sen DOM:sta. Jos elementissä on luokat .fade ja .show , hälytys häviää ennen kuin se poistetaan. |
dispose |
Tuhoaa elementin hälytyksen. (Poistaa DOM-elementtiin tallennetut tiedot) |
getInstance |
Staattinen menetelmä, jonka avulla voit saada DOM-elementtiin liittyvän hälytysinstanssin. Esimerkiksi: bootstrap.Alert.getInstance(alert) . |
getOrCreateInstance |
Staattinen menetelmä, joka palauttaa DOM-elementtiin liittyvän hälytysinstanssin tai luo uuden, jos sitä ei ole alustettu. Voit käyttää sitä näin: bootstrap.Alert.getOrCreateInstance(element) . |
Peruskäyttö:
const alert = bootstrap.Alert.getOrCreateInstance('#myAlert')
alert.close()
Tapahtumat
Bootstrapin hälytyslaajennus paljastaa muutamia tapahtumia, jotka liittyvät hälytystoimintoihin.
Tapahtuma | Kuvaus |
---|---|
close.bs.alert |
Käynnistyy välittömästi, kun close instanssimenetelmää kutsutaan. |
closed.bs.alert |
Käynnistetään, kun hälytys on suljettu ja CSS-siirrot on suoritettu. |
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()
})