Saltu al ĉefa enhavo Saltu al navigado de dokumentoj
Check
in English

Atentigoj

Provizu kontekstajn sugestajn mesaĝojn por tipaj uzantaj agoj per la manpleno da disponeblaj kaj flekseblaj atentaj mesaĝoj.

Ekzemploj

Atentigoj disponeblas por ajna teksto, kaj ankaŭ laŭvola fermbutono. Por taŭga stilo, uzu unu el la ok bezonataj kuntekstaj klasoj (ekz., .alert-success). Por enlinia maldungo, uzu la alarmojn JavaScript-kromaĵon .

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>
Transdonante signifon al helpaj teknologioj

Uzi koloron por aldoni signifon nur provizas vidan indikon, kiu ne estos transdonita al uzantoj de helpaj teknologioj - kiel ekranlegiloj. Certigu, ke informoj indikitaj per la koloro estas aŭ evidenta de la enhavo mem (ekz. la videbla teksto), aŭ estas inkluzivita per alternativaj rimedoj, kiel aldona teksto kaŝita kun la .visually-hiddenklaso.

Viva ekzemplo

Alklaku la suban butonon por montri atentigon (kaŝitan kun enliniaj stiloj por komenci), poste forĵetu (kaj detruu) ĝin per la enkonstruita fermbutono.

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

Ni uzas la jenan JavaScript por ekigi nian vivan atentigdemonstraĵon:

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

Uzu la .alert-linkutilan klason por rapide provizi kongruajn kolorajn ligilojn ene de ajna atentigo.

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>

Plia enhavo

Atentigoj ankaŭ povas enhavi pliajn HTML-elementojn kiel titolojn, alineojn kaj dividojn.

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>

Ikonoj

Simile, vi povas uzi flexbox-servaĵojn kaj Bootstrap-Ikonojn por krei atentigojn per ikonoj. Depende de viaj ikonoj kaj enhavo, vi eble volas aldoni pliajn ilojn aŭ kutimajn stilojn.

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>

Ĉu vi bezonas pli ol unu ikonon por viaj atentigoj? Konsideru uzi pli da Bootstrap-Ikonoj kaj fari lokan SVG-spriton tiel por facile referenci la samajn ikonojn ripete.

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>

Forigo

Uzante la alarmon JavaScript kromaĵo, eblas malakcepti ajnan atentigon enlinie. Jen kiel:

  • Certiĝu, ke vi ŝargis la atentan kromprogramon aŭ la kompilitan Bootstrap JavaScript.
  • Aldonu fermbutonon kaj la .alert-dismissibleklason, kiu aldonas kroman kompletigo dekstre de la atentigo kaj poziciigas la fermbutonon.
  • Sur la fermbutono, aldonu la data-bs-dismiss="alert"atributon, kiu ekigas la JavaScript-funkcion. Nepre uzu la <button>elementon kun ĝi por taŭga konduto tra ĉiuj aparatoj.
  • Por vigligi atentigojn kiam ili forĵetas, nepre aldonu la .fadekaj .showklasojn.

Vi povas vidi ĉi tion en ago kun viva demo:

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>
Kiam atentigo estas forigita, la elemento estas tute forigita de la paĝa strukturo. Se klavaruzanto malakceptas la atentigon per la fermbutono, ilia fokuso subite perdiĝos kaj, depende de la retumilo, rekomenciĝos al la komenco de la paĝo/dokumento. Tial ni rekomendas inkluzivi plian JavaScript kiu aŭskultas la closed.bs.alerteventon kaj programe fiksas focus()al la plej taŭga loko en la paĝo. Se vi planas movi fokuson al ne-interaga elemento, kiu kutime ne ricevas fokuson, nepre aldonu tabindex="-1"al la elemento.

CSS

Variabloj

Aldonita en v5.2.0

Kiel parto de la aliro de evoluantaj CSS-variabloj de Bootstrap, atentigoj nun uzas lokajn CSS .alert-variablojn por plibonigita realtempa personigo. Valoroj por la CSS-variabloj estas fiksitaj per Sass, do ankaŭ Sass-adaptigo ankoraŭ estas subtenata.

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

$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 miksaĵo

Uzita kombine kun $theme-colorskrei kuntekstajn modifklasojn por niaj atentigoj.

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

Buklo kiu generas la modifklasojn kun la alert-variant()miksaĵo.

// 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 konduto

Inicialigu

Komencu elementojn kiel atentigojn

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

Por la sola celo malakcepti alarmon, ne necesas pravalorigi la komponanton permane per la JS API. Uzante data-bs-dismiss="alert", la komponanto estos pravigita aŭtomate kaj konvene forĵetita.

Vidu la sekcion pri ellasiloj por pliaj detaloj.

Ellasiloj

Malakcepto povas esti atingita per la dataatributo sur butono ene de la atentigo kiel montrite sube:

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

aŭ sur butono ekster la atentigo uzante la data-bs-targetkiel montrite sube:

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

Notu, ke fermi alarmon forigos ĝin de la DOM.

Metodoj

Vi povas krei atentigan ekzemplon per la atenta konstrukciisto, ekzemple:

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

Ĉi tio igas atentigon aŭskulti klakajn eventojn sur posteaj elementoj, kiuj havas la data-bs-dismiss="alert"atributon. (Ne necesas kiam vi uzas la aŭtomatan inicialigon de la datum-api.)

Metodo Priskribo
close Fermas alarmon forigante ĝin de la DOM. Se la .fadekaj .showklasoj ĉeestas sur la elemento, la atentigo forvelkos antaŭ ol ĝi estas forigita.
dispose Detruas la alarmon de elemento. (Forigas konservitajn datumojn sur la DOM-elemento)
getInstance Senmova metodo, kiu ebligas al vi ricevi la atentan petskribon asociitan al DOM-elemento. Ekzemple: bootstrap.Alert.getInstance(alert).
getOrCreateInstance Senmova metodo, kiu resendas atentan petskribon asociitan al DOM-elemento aŭ kreas novan se ĝi ne estis pravigita. Vi povas uzi ĝin tiel: bootstrap.Alert.getOrCreateInstance(element).

Baza uzado:

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

Eventoj

La atentiga kromaĵo de Bootstrap elmontras kelkajn eventojn por aliĝi al atentiga funkcio.

Evento Priskribo
close.bs.alert Pafas tuj kiam la closeekzempla metodo estas vokita.
closed.bs.alert Pafite kiam la atentigo estis fermita kaj CSS-transiroj finiĝis.
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()
})