Tandha
Nyedhiyani pesen umpan balik kontekstual kanggo tumindak pangguna sing khas kanthi sawetara pesen tandha sing kasedhiya lan fleksibel.
Tuladha
Tandha kasedhiya kanggo teks apa wae, uga tombol tutup opsional. Kanggo gaya sing tepat, gunakake salah siji saka wolung kelas kontekstual sing dibutuhake.alert-success
(contone, ). Kanggo ngilangi inline, gunakake tandha plugin JavaScript .
<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>
Nuduhake makna kanggo teknologi assistive
Nggunakake warna kanggo nambah makna mung menehi indikasi visual, sing ora bakal dikirim menyang pangguna teknologi bantu - kayata pembaca layar. Priksa manawa informasi sing dituduhake kanthi warna katon jelas saka isi kasebut (umpamane teks sing katon), utawa kalebu liwat cara alternatif, kayata teks tambahan sing didhelikake karo .visually-hidden
kelas.
Tuladha urip
Klik tombol ing ngisor iki kanggo nuduhake tandha (didhelikake karo gaya inline kanggo miwiti), banjur ngilangi (lan numpes) karo tombol cedhak dibangun ing.
<div id="liveAlertPlaceholder"></div>
<button type="button" class="btn btn-primary" id="liveAlertBtn">Show live alert</button>
Kita nggunakake JavaScript ing ngisor iki kanggo micu demo tandha langsung:
var alertPlaceholder = document.getElementById('liveAlertPlaceholder')
var alertTrigger = document.getElementById('liveAlertBtn')
function alert(message, type) {
var wrapper = document.createElement('div')
wrapper.innerHTML = '<div class="alert alert-' + type + ' alert-dismissible" role="alert">' + message + '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div>'
alertPlaceholder.append(wrapper)
}
if (alertTrigger) {
alertTrigger.addEventListener('click', function () {
alert('Nice, you triggered this alert message!', 'success')
})
}
Warna link
Gunakake .alert-link
kelas sarana kanggo nyedhiyakake link warna sing cocog kanthi cepet ing tandha apa wae.
<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>
Isi tambahan
Tandha uga bisa ngemot unsur HTML tambahan kaya judhul, paragraf lan pemisah.
Inggih rampung!
Aww ya, sampeyan kasil maca pesen tandha penting iki. Teks conto iki bakal mlaku rada suwe supaya sampeyan bisa ndeleng kepiye jarak ing tandha bisa digunakake karo konten kaya iki.
Yen perlu, manawa sampeyan nggunakake utilitas margin kanggo njaga barang-barang sing apik lan rapi.
<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>
lambang
Kajaba iku, sampeyan bisa nggunakake utilitas flexbox lan Ikon Bootstrap kanggo nggawe tandha kanthi lambang. Gumantung ing lambang lan isi, sampeyan bisa uga pengin nambah liyane keperluan utawa gaya adat.
<div class="alert alert-primary d-flex align-items-center" role="alert">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" 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>
Perlu luwih saka siji lambang kanggo tandha? Coba gunakake luwih akeh Ikon Bootstrap lan nggawe sprite SVG lokal supaya gampang ngrujuk lambang sing padha bola-bali.
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="check-circle-fill" fill="currentColor" 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" fill="currentColor" 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" fill="currentColor" 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" width="24" height="24" 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" width="24" height="24" 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" width="24" height="24" 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" width="24" height="24" role="img" aria-label="Danger:"><use xlink:href="#exclamation-triangle-fill"/></svg>
<div>
An example danger alert with an icon
</div>
</div>
Ngilangi
Nggunakake plugin JavaScript tandha, sampeyan bisa ngilangi inline tandha. Mangkene carane:
- Priksa manawa sampeyan wis mbukak plugin tandha, utawa kompilasi Bootstrap JavaScript.
- Tambah tombol cedhak lan
.alert-dismissible
kelas, kang nambah padding ekstra ing sisih tengen tandha lan posisi tombol cedhak. - Ing tombol cedhak, tambahake
data-bs-dismiss="alert"
atribut, sing nyebabake fungsi JavaScript. Priksa manawa sampeyan nggunakake<button>
unsur kasebut kanggo tumindak sing bener ing kabeh piranti. - Kanggo animate tandha nalika ngilangi, manawa kanggo nambah
.fade
lan.show
kelas.
Sampeyan bisa ndeleng iki ing tumindak kanthi demo langsung:
<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
acara kasebut lan kanthi program nyetel
focus()
lokasi sing paling cocok ing kaca kasebut. Yen sampeyan arep mindhah fokus menyang unsur non-interaktif sing biasane ora nampa fokus, priksa manawa kanggo nambah
tabindex="-1"
menyang unsur.
Sass
Variabel
$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
Varian campuran
Digunakake ing kombinasi karo $theme-colors
kanggo nggawe kelas modifier kontekstual kanggo tandha kita.
@mixin alert-variant($background, $border, $color) {
color: $color;
@include gradient-bg($background);
border-color: $border;
.alert-link {
color: shade-color($color, 20%);
}
}
Loop
Loop sing ngasilake kelas modifier karo 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);
}
}
Prilaku JavaScript
Initialize
Miwiti unsur minangka tandha
var alertList = document.querySelectorAll('.alert')
var alerts = [].slice.call(alertList).map(function (element) {
return new bootstrap.Alert(element)
})
Kanggo mung ngilangi tandha, ora perlu miwiti komponen kanthi manual liwat API JS. Kanthi nggunakake data-bs-dismiss="alert"
, komponen kasebut bakal diwiwiti kanthi otomatis lan dibuwang kanthi bener.
Waca bagean pemicu kanggo rincian liyane.
Pemicu
Pembubaran bisa digayuh kanthi data
atribut ing tombol ing tandha kaya sing dituduhake ing ngisor iki:
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
utawa ing tombol ing njaba tandha nggunakake data-bs-target
kaya sing dituduhake ing ngisor iki:
<button type="button" class="btn-close" data-bs-dismiss="alert" data-bs-target="#my-alert" aria-label="Close"></button>
Elinga yen nutup tandha bakal nyopot saka DOM.
Metode
Metode | Katrangan |
---|---|
close |
Nutup tandha kanthi nyopot saka DOM. Yen kelas .fade lan .show ana ing unsur kasebut, tandha bakal ilang sadurunge dibusak. |
dispose |
Numpes tandha unsur. (Mbusak data sing disimpen ing unsur DOM) |
getInstance |
Cara statis sing ngidini sampeyan entuk conto tandha sing ana gandhengane karo unsur DOM, sampeyan bisa nggunakake kaya iki:bootstrap.Alert.getInstance(alert) |
getOrCreateInstance |
Cara statis sing ngasilake conto tandha sing digandhengake karo unsur DOM utawa nggawe sing anyar yen ora diwiwiti. Sampeyan bisa nggunakake kaya iki:bootstrap.Alert.getOrCreateInstance(element) |
var alertNode = document.querySelector('.alert')
var alert = bootstrap.Alert.getInstance(alertNode)
alert.close()
Acara
Plugin tandha Bootstrap nyedhiyakake sawetara acara kanggo nyambungake fungsi tandha.
Acara | Katrangan |
---|---|
close.bs.alert |
Langsung murub nalika close metode conto diarani. |
closed.bs.alert |
Dipecat nalika tandha wis ditutup lan transisi CSS wis rampung. |
var myAlert = document.getElementById('myAlert')
myAlert.addEventListener('closed.bs.alert', function () {
// 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()
})