Прескокнете до главната содржина Прескокнете на навигацијата со документи
Check
in English

Известувања

Обезбедете контекстуални пораки за повратни информации за типични кориснички дејства со неколку достапни и флексибилни пораки за предупредување.

Примери

Достапни се предупредувања за која било должина на текст, како и опционално копче за затворање. За правилен стајлинг, користете една од осумте потребни контекстуални класи (на пр., .alert-success). За внатрешно отпуштање, користете го приклучокот JavaScript за предупредувања .

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>
Пренесување значење на помошните технологии

Користењето боја за додавање значење обезбедува само визуелна индикација, која нема да биде пренесена до корисниците на помошни технологии - како што се читачите на екранот. Осигурајте се дека информациите означени со бојата се или очигледни од самата содржина (на пр. видлив текст), или се вклучени преку алтернативни средства, како што е дополнителен текст скриен со .visually-hiddenкласата.

Жив пример

Кликнете на копчето подолу за да прикажете предупредување (скриено со вградени стилови за почеток), потоа отфрлете го (и уништите) со вграденото копче за затворање.

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

Го користиме следниов JavaScript за да го активираме нашето демо за предупредување во живо:

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

Користете ја .alert-linkуслужната класа за брзо да обезбедите врски во боја што одговараат во секое предупредување.

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>

Дополнителна содржина

Известувањата може да содржат и дополнителни HTML елементи како што се наслови, параграфи и разделувачи.

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>

Икони

Слично на тоа, можете да ги користите алатките за flexbox и Bootstrap Icons за да креирате предупредувања со икони. Во зависност од вашите икони и содржина, можеби ќе сакате да додадете повеќе алатки или сопствени стилови.

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>

Ви треба повеќе од една икона за вашите предупредувања? Размислете за користење на повеќе Bootstrap икони и правење локален SVG sprite како таков за лесно да ги повикувате истите икони постојано.

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>

Отфрлање

Користејќи го приклучокот за предупредување JavaScript, можно е да се отфрли секое предупредување внатре. Еве како:

  • Бидете сигурни дека сте го вчитале приклучокот за предупредување или компајлираниот Bootstrap JavaScript.
  • Додајте копче за затворање и .alert-dismissibleкласа, која додава дополнително полнење десно од предупредувањето и го позиционира копчето за затворање.
  • На копчето за затворање, додадете го data-bs-dismiss="alert"атрибутот, кој ја активира функционалноста на JavaScript. Не заборавајте да го користите <button>елементот со него за правилно однесување на сите уреди.
  • За да ги анимирате предупредувањата кога ги отфрлате, задолжително додајте ги .fadeкласите и .show.

Можете да го видите ова на дело со демо во живо:

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>
Кога предупредувањето е отфрлено, елементот целосно се отстранува од структурата на страницата. Ако корисникот на тастатурата го отфрли предупредувањето користејќи го копчето за затворање, неговиот фокус одеднаш ќе се изгуби и, во зависност од прелистувачот, ќе се ресетира на почеток на страницата/документот. Поради оваа причина, препорачуваме да вклучите дополнителен JavaScript кој го слуша closed.bs.alertнастанот и програмски се поставува focus()на најсоодветната локација на страницата. Ако планирате да го преместите фокусот на неинтеактивен елемент кој вообичаено не добива фокус, погрижете се да го додадете tabindex="-1"во елементот.

CSS

Променливи

Додадено во v5.2.0

Како дел од пристапот на еволуирачки CSS променливи на Bootstrap, предупредувањата сега користат локални CSS променливи .alertза подобрено прилагодување во реално време. Вредностите за променливите CSS се поставени преку Sass, така што прилагодувањето на Sass сè уште е поддржано.

  --#{$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 променливи

$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

Се користи во комбинација со $theme-colorsза создавање класи на контекстуални модификатори за нашите предупредувања.

@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 јамка

Јамка што ги генерира класите на модификаторите со alert-variant()миксинот.

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

Иницијализирај

Иницијализирајте елементи како предупредувања

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

Со единствена цел да се отфрли предупредување, не е неопходно рачно да се иницијализира компонентата преку JS API. Со користење на data-bs-dismiss="alert", компонентата ќе се иницијализира автоматски и правилно ќе се отфрли.

Погледнете го делот за предизвикувачи за повеќе детали.

Предизвикувачи

Отфрлањето може да се постигне со dataатрибутот на копче во рамките на предупредувањето како што е прикажано подолу:

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

или на копче надвор од предупредувањето користејќи го data-bs-targetкако што е прикажано подолу:

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

Имајте предвид дека затворањето на предупредувањето ќе го отстрани од DOM.

Методи

Можете да креирате пример за предупредување со конструкторот за предупредување, на пример:

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

Ова го прави предупредувањето да слуша за настани со кликнување на елементите потомци кои го имаат data-bs-dismiss="alert"атрибутот. (Не е потребно кога се користи автоматската иницијализација на data-api.)

Метод Опис
close Затвора предупредување со отстранување од DOM. Ако класите .fadeи .showсе присутни на елементот, предупредувањето ќе избледи пред да се отстрани.
dispose Уништува предупредување за елемент. (Ги отстранува зачуваните податоци на елементот DOM)
getInstance Статички метод кој ви овозможува да ја добиете инстанцата за предупредување поврзана со елементот DOM. На пример: bootstrap.Alert.getInstance(alert).
getOrCreateInstance Статички метод кој враќа инстанца за предупредување поврзана со елемент DOM или создава нов во случај да не е иницијализиран. Можете да го користите вака bootstrap.Alert.getOrCreateInstance(element):.

Основна употреба:

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

Настани

Приклучокот за предупредување на Bootstrap изложува неколку настани за приклучување на функционалноста за предупредување.

Настан Опис
close.bs.alert Запали веднаш кога closeќе се повика методот на пример.
closed.bs.alert Се активира кога предупредувањето е затворено и CSS транзициите се завршени.
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()
})