Pāriet uz galveno saturu Pāriet uz dokumentu navigāciju
Check
in English

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 .

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>
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-hiddenklasi.

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.

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

Izmantojiet .alert-linklietderības klasi, lai jebkurā brīdinājumā ātri nodrošinātu atbilstošas ​​krāsas saites.

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>

Papildu saturs

Brīdinājumi var saturēt arī papildu HTML elementus, piemēram, virsrakstus, rindkopas un atdalītājus.

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>

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.

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>

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.

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>

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-dismissibleklasi, 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 .fadeun .showklases.

To var redzēt darbībā, izmantojot tiešraides demonstrāciju:

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>
Kad brīdinājums tiek noraidīts, elements tiek pilnībā noņemts no lapas struktūras. Ja tastatūras lietotājs noraida brīdinājumu, izmantojot aizvēršanas pogu, viņa fokuss pēkšņi tiks zaudēts un atkarībā no pārlūkprogrammas tiks atiestatīts uz lapas/dokumenta sākumu. Šī iemesla dēļ mēs iesakām iekļaut papildu JavaScript, kas noklausās closed.bs.alertnotikumu 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.0

Kā daļa no Bootstrap attīstošās CSS mainīgo pieejas, brīdinājumos tagad tiek izmantoti vietējie CSS mainīgie, .alertlai 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-targettā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 .fadeun .showklases, 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 closetiek 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()
})