Fara í aðalefni Farðu í skjalaleiðsögn
Check
in English

Viðvaranir

Gefðu samhengisskilaboðum fyrir dæmigerðar notendaaðgerðir með handfylli af tiltækum og sveigjanlegum viðvörunarskilaboðum.

Dæmi

Viðvaranir eru fáanlegar fyrir hvaða lengd texta sem er, auk valfrjáls lokahnapps. Til að útlit sé rétt, notaðu einn af átta nauðsynlegum samhengisflokkum (td .alert-success). Notaðu JavaScript viðbótina fyrir viðvaranir fyrir innbyggða uppsögn .

html
<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>
Að miðla merkingu til hjálpartækja

Notkun lita til að bæta við merkingu gefur aðeins sjónræna vísbendingu, sem verður ekki miðlað til notenda hjálpartækni - eins og skjálesara. Gakktu úr skugga um að upplýsingar sem merktar eru með litnum séu annaðhvort augljósar af innihaldinu sjálfu (td sýnilegum texta), eða séu innifaldar með öðrum hætti, svo sem viðbótartexta sem er falinn í .visually-hiddenbekknum.

Lifandi dæmi

Smelltu á hnappinn hér að neðan til að sýna viðvörun (falin með innbyggðum stílum til að byrja), hafðu síðan (og eyðileggja) hana með innbyggða lokunarhnappnum.

html
<div id="liveAlertPlaceholder"></div>
<button type="button" class="btn btn-primary" id="liveAlertBtn">Show live alert</button>

Við notum eftirfarandi JavaScript til að kveikja á kynningu okkar í beinni viðvörun:

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')
  })
}

Notaðu .alert-linkgagnsemisflokkinn til að gefa fljótt samsvarandi litaða tengla í hvaða viðvörun sem er.

html
<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>

Viðbótarefni

Viðvaranir geta einnig innihaldið fleiri HTML þætti eins og fyrirsagnir, málsgreinar og skilrúm.

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>

Táknmyndir

Á sama hátt geturðu notað flexbox tól og Bootstrap Icons til að búa til viðvaranir með táknum. Það fer eftir táknum þínum og innihaldi, þú gætir viljað bæta við fleiri tólum eða sérsniðnum stílum.

html
<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>

Þarftu fleiri en eitt tákn fyrir viðvaranir þínar? Íhugaðu að nota fleiri Bootstrap tákn og búa til staðbundið SVG sprite eins og svo til að vísa til sömu táknanna ítrekað.

html
<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>

Að vísa frá

Með því að nota alert JavaScript viðbótina er hægt að hafna hvaða viðvörun sem er innbyggð. Svona:

  • Vertu viss um að þú hafir hlaðið viðvörunarviðbótinni eða samsettu Bootstrap JavaScript.
  • Bættu við lokunarhnappi og .alert-dismissiblebekknum, sem bætir aukafyllingu hægra megin við viðvörunina og staðsetur lokunarhnappinn.
  • Bættu við data-bs-dismiss="alert"eigindinni á lokahnappinum, sem ræsir JavaScript virknina. Gakktu úr skugga um að þú notir <button>þáttinn með því til að hegðun sé rétt í öllum tækjum.
  • .fadeVertu viss um að bæta við og .showflokkunum til að hreyfa viðvaranir þegar þeim er vísað frá.

Þú getur séð þetta í aðgerð með lifandi kynningu:

html
<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>
Þegar viðvörun er hunsuð er þátturinn fjarlægður alveg úr síðuskipulaginu. Ef lyklaborðsnotandi hafnar viðvöruninni með því að nota lokunarhnappinn mun fókus hans skyndilega glatast og, allt eftir vafranum, endurstillast á upphaf síðunnar/skjalsins. Af þessum sökum mælum við með því að innihalda viðbótar JavaScript sem hlustar á closed.bs.alertviðburðinn og stillir forritunarlega focus()á viðeigandi staðsetningu á síðunni. Ef þú ætlar að færa fókus í ógagnvirkan þátt sem venjulega fær ekki fókus, vertu viss um að bæta tabindex="-1"við þáttinn.

CSS

Breytur

Bætt við í v5.2.0

Sem hluti af CSS breytum í þróun Bootstrap, nota tilkynningar nú staðbundnar CSS breytur á .alerttil að auka rauntíma aðlögun. Gildi fyrir CSS breyturnar eru stillt í gegnum Sass, þannig að Sass aðlögun er enn studd líka.

  --#{$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 breytur

$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 blanda

Notað ásamt $theme-colorstil að búa til samhengisbreytingaflokka fyrir viðvaranir okkar.

@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 lykkja

Lykka sem býr til breytiklasa með alert-variant()mixinu.

// 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 hegðun

Frumstilla

Frumstilla þætti sem viðvaranir

const alertList = document.querySelectorAll('.alert')
const alerts = [...alertList].map(element => new bootstrap.Alert(element))

Í þeim eina tilgangi að hafna viðvörun er ekki nauðsynlegt að frumstilla íhlutinn handvirkt í gegnum JS API. Með því að nota data-bs-dismiss="alert", verður íhluturinn frumstilltur sjálfkrafa og hætt á réttan hátt.

Sjá kveikjuhlutann fyrir frekari upplýsingar.

Kveikjur

Hægt er að fá brottvísun með dataeigindinni á hnappi innan viðvörunarinnar eins og sýnt er hér að neðan:

<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>

eða á hnapp fyrir utan viðvörunina með því að nota data-bs-targeteins og sýnt er hér að neðan:

<button type="button" class="btn-close" data-bs-dismiss="alert" data-bs-target="#my-alert" aria-label="Close"></button>

Athugaðu að lokun á viðvörun mun fjarlægja hana úr DOM.

Aðferðir

Þú getur búið til viðvörunartilvik með viðvörunarsmiðnum, til dæmis:

const bsAlert = new bootstrap.Alert('#myAlert')

Þetta gerir viðvörun til að hlusta eftir smelliviðburðum á afkvæmi sem hafa data-bs-dismiss="alert"eigindina. (Ekki nauðsynlegt þegar þú notar sjálfvirka frumstillingu gagnaforritsins.)

Aðferð Lýsing
close Lokar viðvörun með því að fjarlægja hana úr DOM. Ef .fadeog .showflokkarnir eru til staðar á frumefninu mun viðvörunin hverfa áður en hún er fjarlægð.
dispose Eyðir viðvörun frumefnis. (Fjarlægir vistuð gögn á DOM-einingunni)
getInstance Statísk aðferð sem gerir þér kleift að fá viðvörunartilvikið tengt DOM frumefni. Til dæmis bootstrap.Alert.getInstance(alert):.
getOrCreateInstance Statísk aðferð sem skilar viðvörunartilviki sem tengist DOM-einingu eða býr til nýjan ef hann var ekki frumstilltur. Þú getur notað það svona: bootstrap.Alert.getOrCreateInstance(element).

Grunnnotkun:

const alert = bootstrap.Alert.getOrCreateInstance('#myAlert')
alert.close()

Viðburðir

Viðvörunarviðbót Bootstrap afhjúpar nokkra atburði til að tengjast viðvörunarvirkni.

Viðburður Lýsing
close.bs.alert Kveikir strax þegar closetilviksaðferðin er kölluð.
closed.bs.alert Kveikt þegar viðvöruninni hefur verið lokað og CSS umskiptum er lokið.
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()
})