Tooltips
Documentazione è esempi per aghjunghje tooltips Bootstrap persunalizati cù CSS è JavaScript utilizendu CSS3 per animazioni è data-bs-attributi per u almacenamentu di titulu lucale.
Panoramica
Cose da sapè quandu si usa u plugin tooltip:
- Tooltips s'appoghjanu nantu à a libreria di terzu Popper per u posizionamentu. Duvete include popper.min.js prima
bootstrap.js
, o utilizate unubootstrap.bundle.min.js
chì cuntene Popper. - I Tooltips sò opt-in per ragioni di rendiment, cusì duvete inizializzalli da voi stessu .
- Tooltips cù tituli di lunghezza zero ùn sò mai affissati.
- Specificate
container: 'body'
per evità prublemi di rende in cumpunenti più cumplessi (cum'è i nostri gruppi di input, gruppi di buttone, etc.). - Triggering tooltips nantu à elementi nascosti ùn funziona micca.
- Tooltips per
.disabled
odisabled
elementi deve esse attivatu nantu à un elementu wrapper. - Quandu s'hè attivatu da i ligami ipertesi chì spannu parechje linee, i tooltips seranu centrati. Aduprate
white-space: nowrap;
nantu à u vostru<a>
s per evità stu cumpurtamentu. - Tooltips deve esse ammucciatu prima chì i so elementi currispondenti sò stati eliminati da u DOM.
- Tooltips ponu esse attivati grazia à un elementu in un DOM ombra.
Avete tuttu ciò? Grande, vedemu cumu travaglianu cù qualchi esempi.
prefers-reduced-motion
media query. Vede a
sezione di movimentu ridottu di a nostra documentazione d'accessibilità .
Esempii
Attivà i tooltips
Cumu l'esitatu sopra, duvete inizializà i tooltips prima di pudè esse usatu. Un modu per inizializà tutti i tooltips in una pagina seria di selezziunà per u so data-bs-toggle
attributu, cusì:
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))
Tooltips nantu à i ligami
Passa sopra i ligami sottu per vede tooltips:
Testu di piazzamentu per dimustrà alcuni ligami in linea cù tooltips. Questu hè avà solu filler, micca assassinu. Cuntinutu piazzatu quì solu per imite a prisenza di u testu veru . È tuttu ciò solu per dà un'idea di cumu si parevanu i tooltips quandu sò usati in situazioni di u mondu reale. Allora spergu chì avete avà vistu cumu questi tooltips nantu à i ligami ponu travaglià in pratica, una volta chì l'utilizate in u vostru situ o prughjettu.
<p class="muted">Placeholder text to demonstrate some <a href="#" data-bs-toggle="tooltip" data-bs-title="Default tooltip">inline links</a> with tooltips. This is now just filler, no killer. Content placed here just to mimic the presence of <a href="#" data-bs-toggle="tooltip" data-bs-title="Another tooltip">real text</a>. And all that just to give you an idea of how tooltips would look when used in real-world situations. So hopefully you've now seen how <a href="#" data-bs-toggle="tooltip" data-bs-title="Another one here too">these tooltips on links</a> can work in practice, once you use them on <a href="#" data-bs-toggle="tooltip" data-bs-title="The last tip!">your own</a> site or project.
</p>
title
o
data-bs-title
in u vostru HTML. Quandu
title
hè utilizatu, Popper a rimpiazzà automaticamente cù
data-bs-title
quandu l'elementu hè resu.
Tooltips persunalizati
Aggiuntu in v5.2.0Pudete persunalizà l'apparenza di tooltips usendu variabili CSS . Avemu stabilitu una classa persunalizata data-bs-custom-class="custom-tooltip"
per scopre a nostra apparenza persunalizata è l'utilizanu per annullà una variabile CSS locale.
.custom-tooltip {
--bs-tooltip-bg: var(--bs-primary);
}
<button type="button" class="btn btn-secondary"
data-bs-toggle="tooltip" data-bs-placement="top"
data-bs-custom-class="custom-tooltip"
data-bs-title="This top tooltip is themed via CSS variables.">
Custom tooltip
</button>
Indicazioni
Passa sopra i buttoni quì sottu per vede e quattru direzzione di tooltips: cima, destra, fondu è manca. L'indicazioni sò specchiate quandu si usa Bootstrap in RTL.
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Tooltip on top">
Tooltip on top
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="right" data-bs-title="Tooltip on right">
Tooltip on right
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-title="Tooltip on bottom">
Tooltip on bottom
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="left" data-bs-title="Tooltip on left">
Tooltip on left
</button>
È cù HTML persunalizatu aghjuntu:
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-html="true" data-bs-title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">
Tooltip with HTML
</button>
Cù un SVG:
CSS
Variabili
Aggiuntu in v5.2.0Cum'è parte di l'approcciu di variabili CSS in evoluzione di Bootstrap, i tooltips usanu avà variabili CSS lucali .tooltip
per una persunalizazione rinfurzata in tempu reale. I valori per e variabili CSS sò stabiliti via Sass, cusì a persunalizazione di Sass hè ancu supportata.
--#{$prefix}tooltip-zindex: #{$zindex-tooltip};
--#{$prefix}tooltip-max-width: #{$tooltip-max-width};
--#{$prefix}tooltip-padding-x: #{$tooltip-padding-x};
--#{$prefix}tooltip-padding-y: #{$tooltip-padding-y};
--#{$prefix}tooltip-margin: #{$tooltip-margin};
@include rfs($tooltip-font-size, --#{$prefix}tooltip-font-size);
--#{$prefix}tooltip-color: #{$tooltip-color};
--#{$prefix}tooltip-bg: #{$tooltip-bg};
--#{$prefix}tooltip-border-radius: #{$tooltip-border-radius};
--#{$prefix}tooltip-opacity: #{$tooltip-opacity};
--#{$prefix}tooltip-arrow-width: #{$tooltip-arrow-width};
--#{$prefix}tooltip-arrow-height: #{$tooltip-arrow-height};
Variabili Sass
$tooltip-font-size: $font-size-sm;
$tooltip-max-width: 200px;
$tooltip-color: $white;
$tooltip-bg: $black;
$tooltip-border-radius: $border-radius;
$tooltip-opacity: .9;
$tooltip-padding-y: $spacer * .25;
$tooltip-padding-x: $spacer * .5;
$tooltip-margin: null; // TODO: remove this in v6
$tooltip-arrow-width: .8rem;
$tooltip-arrow-height: .4rem;
// fusv-disable
$tooltip-arrow-color: null; // Deprecated in Bootstrap 5.2.0 for CSS variables
// fusv-enable
Usu
U plugin di tooltip genera cuntenutu è marcatu nantu à a dumanda, è di manera predeterminata mette tooltips dopu u so elementu trigger.
Trigger u tooltip via JavaScript:
const exampleEl = document.getElementById('example')
const tooltip = new bootstrap.Tooltip(exampleEl, options)
Overflow auto
èscroll
A pusizione di Tooltip prova di cambià automaticamente quandu un cuntainer parent hà overflow: auto
o overflow: scroll
piace u nostru .table-responsive
, ma mantene sempre a pusizione di u locu originale. Per risolve questu, stabilisce l' boundary
opzione (per u modificatore flip usendu l' popperConfig
opzione) à qualsiasi HTMLElement per annullà u valore predeterminatu 'clippingParents'
, cum'è document.body
:
const tooltip = new bootstrap.Tooltip('#example', {
boundary: document.body // or document.querySelector('#boundary')
})
Marcatura
U marcatu necessariu per un tooltip hè solu un data
attributu è title
nantu à l'elementu HTML chì vulete avè un tooltip. U marcatu generatu di un tooltip hè piuttostu simplice, ancu s'ellu ci hè bisognu di una pusizione (per difettu, stabilitu top
da u plugin).
Fà chì i tooltips funzionanu per l'utilizatori di u teclatu è di a tecnulugia di assistenza
Duvete solu aghjunghje tooltips à l'elementi HTML chì sò tradizionalmente focalizati è interattivi (cum'è ligami o cuntrolli di forma). Ancu se l'elementi HTML arbitrarii (cum'è <span>
s) ponu esse focalizzati aghjunghjendu l' tabindex="0"
attributu, questu aghjunghjenu tabulazione potenzialmente fastidiosa è confusa nantu à elementi non interattivi per l'utilizatori di u teclatu, è a maiò parte di e tecnulugie d'assistenza ùn anu micca annunzià l'utillita in questa situazione. Inoltre, ùn fiate micca solu hover
cum'è u trigger per u vostru tooltip, postu chì questu renderà i vostri tooltips impussibili di attivà per l'utilizatori di u teclatu.
<!-- HTML to write -->
<a href="#" data-bs-toggle="tooltip" data-bs-title="Some tooltip text!">Hover over me</a>
<!-- Generated markup by the plugin -->
<div class="tooltip bs-tooltip-top" role="tooltip">
<div class="tooltip-arrow"></div>
<div class="tooltip-inner">
Some tooltip text!
</div>
</div>
Elementi disabilitati
L'elementi cù l' disabled
attributu ùn sò micca interattivi, vale à dì chì l'utilizatori ùn ponu micca focalizà, passanu o cliccà per attivà un tooltip (o popover). Cum'è una soluzione alternativa, vi vulete attivà u tooltip da un wrapper <div>
o <span>
, idealmente fattu focalizatu da u teclatu cù tabindex="0"
.
<span class="d-inline-block" tabindex="0" data-bs-toggle="tooltip" data-bs-title="Disabled tooltip">
<button class="btn btn-primary" type="button" disabled>Disabled button</button>
</span>
Opzioni
Siccomu l'opzioni ponu esse passati via attributi di dati o JavaScript, pudete appiccicà un nome d'opzione à data-bs-
, cum'è in data-bs-animation="{value}"
. Assicuratevi di cambià u tipu di casu di u nome di l'opzione da " camelCase " à " kebab-case " quandu passanu l'opzioni via attributi di dati. Per esempiu, aduprà data-bs-custom-class="beautifier"
invece di data-bs-customClass="beautifier"
.
A partire da Bootstrap 5.2.0, tutti i cumpunenti supportanu un attributu di dati riservatu sperimentaledata-bs-config
chì pò accoglie cunfigurazione di cumpunenti simplice cum'è una stringa JSON. Quandu un elementu hà data-bs-config='{"delay":0, "title":123}'
è data-bs-title="456"
attributi, u valore finali title
serà 456
è l'attributi di dati separati annullaranu i valori dati nantu à data-bs-config
. Inoltre, l'attributi di dati esistenti sò capaci di allughjà valori JSON cum'è data-bs-delay='{"show":0,"hide":150}'
.
sanitize
,
sanitizeFn
, è
allowList
ùn ponu esse furnite cù l'attributi di dati.
Nome | Tipu | Default | Descrizzione |
---|---|---|---|
allowList |
ughjettu | Valore predeterminatu | Ughjettu chì cuntene attributi permessi è tags. |
animation |
booleanu | true |
Applica una transizione di dissolvenza CSS à u tooltip. |
boundary |
corda, elementu | 'clippingParents' |
Limite di limitazione di overflow di u tooltip (applica solu à u modificatore preventOverflow di Popper). Per automaticamente, hè 'clippingParents' è pò accettà una riferenza HTMLElement (via JavaScript solu). Per più infurmazione, fate riferimentu à i docs detectOverflow di Popper . |
container |
stringa, elementu, falsu | false |
Appendi u tooltip à un elementu specificu. Esempiu: container: 'body' . Questa opzione hè particularmente utile in quantu vi permette di pusà u tooltip in u flussu di u documentu vicinu à l'elementu di attivazione - chì impedisce chì u tooltip flote luntanu da l'elementu di attivazione durante un ridimensionamentu di a finestra. |
customClass |
stringa, funzione | '' |
Aghjunghjite classi à u tooltip quandu si mostra. Nota chì queste classi seranu aghjunte in più di qualsiasi classi specificate in u mudellu. Per aghjunghje parechje classi, siparalli cù spazii: 'class-1 class-2' . Pudete ancu passà una funzione chì deve rinvià una sola stringa chì cuntene nomi di classi supplementari. |
delay |
numeru, ughjettu | 0 |
Ritarda di mostra è nasconde u tooltip (ms) - ùn hè micca applicatu à u tipu di trigger manuale. Se un numeru hè furnitu, u ritardu hè appiicatu à tramindui nascondere / mostra. A struttura di l'ughjettu hè: delay: { "show": 500, "hide": 100 } . |
fallbackPlacements |
array | ['top', 'right', 'bottom', 'left'] |
Definite i piazzamenti fallback fornendu una lista di piazzamenti in array (in ordine di preferenza). Per più infurmazione, fate riferimentu à i documenti di cumpurtamentu di Popper . |
html |
booleanu | false |
Permette HTML in u tooltip. Se hè vera, e tag HTML in u tooltip title seranu resi in u tooltip. Se false, innerText a pruprietà serà aduprata per inserisce u cuntenutu in u DOM. Aduprate u testu s'è vo site preoccupatu per l'attacchi XSS. |
offset |
array, stringa, funzione | [0, 0] |
Offset di u tooltip relative à u so scopu. Pudete passà una stringa in attributi di dati cù valori separati da virgola cum'è: data-bs-offset="10,20" . Quandu una funzione hè aduprata per determinà l'offset, hè chjamatu cù un oggettu chì cuntene a pusizione di popper, a riferenza è u popper rects cum'è u so primu argumentu. L'elementu triggering node DOM hè passatu cum'è u sicondu argumentu. A funzione deve rinvià un array cù dui numeri: skidding , distance . Per più infurmazione, fate riferimentu à i documenti offset di Popper . |
placement |
stringa, funzione | 'top' |
Cumu pusà u tooltip: auto, cima, fondu, manca, diritta. Quandu auto hè specificatu, reorienterà dinamicamente u tooltip. Quandu una funzione hè aduprata per determinà a piazza, hè chjamata cù u nodu DOM di tooltip cum'è u so primu argumentu è l'elementu triggering DOM node cum'è u so secondu. U this cuntestu hè stabilitu à l'istanza tooltip. |
popperConfig |
null, ughjettu, funzione | null |
Per cambià a configurazione Popper predeterminata di Bootstrap, vede a cunfigurazione di Popper . Quandu una funzione hè aduprata per creà a cunfigurazione Popper, hè chjamata cù un ughjettu chì cuntene a cunfigurazione Popper predeterminata di Bootstrap. Vi aiuta à aduprà è unisce u predeterminatu cù a vostra cunfigurazione. A funzione deve rinvià un oggettu di cunfigurazione per Popper. |
sanitize |
booleanu | true |
Attivà o disattivà a sanitizazione. Se attivatu 'template' , 'content' è 'title' l'opzioni seranu sanitizate. |
sanitizeFn |
null, funzione | null |
Quì pudete furnisce a vostra propria funzione di sanitizazione. Questu pò esse utile se preferite aduprà una biblioteca dedicata per fà a sanitizazione. |
selector |
stringa, falza | false |
Se un selettore hè furnitu, l'uggetti tooltip seranu delegati à i miri specificati. In pratica, questu hè adupratu ancu per applicà cunsiglii di strumenti à elementi DOM aghjuntu dinamicamente ( jQuery.on supportu). Vede stu prublema è un esempiu informativu . |
template |
stringa | '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' |
HTML di basa à aduprà quandu crea u tooltip. U tooltip title sarà injectatu in u .tooltip-inner . .tooltip-arrow diventerà a freccia di u tooltip. L'elementu wrapper più esterno deve avè a .tooltip classa è role="tooltip" . |
title |
stringa, elementu, funzione | '' |
Valore di u titulu predeterminatu se title l'attributu ùn hè micca presente. Se una funzione hè datu, serà chjamata cù u so this riferimentu stabilitu à l'elementu chì u popover hè attaccatu. |
trigger |
stringa | 'hover focus' |
Cumu l'utillita hè attivata: cliccate, hover, focus, manual. Pudete passà parechje triggers; separà cù un spaziu. 'manual' indica chì u tooltip serà attivatu programaticamente via i metudi .tooltip('show') , .tooltip('hide') è ; .tooltip('toggle') stu valore ùn pò esse cumminatu cù qualsiasi altru trigger. 'hover' da u so propiu risultatu in tooltips chì ùn ponu micca esse attivati via u teclatu, è deve esse usatu solu se i metudi alternativi per trasmette a listessa infurmazione per l'utilizatori di u teclatu sò prisenti. |
Attributi di dati per tooltips individuali
L'opzioni per i tooltips individuali ponu esse specificati in alternativa attraversu l'usu di l'attributi di dati, cum'è spiegatu sopra.
Utilizà a funzione cùpopperConfig
const tooltip = new bootstrap.Tooltip(element, {
popperConfig(defaultBsPopperConfig) {
// const newPopperConfig = {...}
// use defaultBsPopperConfig if needed...
// return newPopperConfig
}
})
I metudi
Metudi asincroni è transizioni
Tutti i metudi API sò asincroni è cumincianu una transizione . Ritornanu à u chjamante appena a transizione hè iniziata, ma prima chì finisce . Inoltre, un metudu chjamatu nantu à un cumpunente di transizione serà ignoratu .
Vede a nostra documentazione JavaScript per più infurmazione .
Metudu | Descrizzione |
---|---|
disable |
Elimina a capacità per esse mostratu u tooltip di un elementu. U tooltip pò esse mostratu solu s'ellu hè riattivatu. |
dispose |
Oculta è distrugge u tooltip di un elementu (Elimina i dati almacenati nantu à l'elementu DOM). Tooltips chì utilizanu a delegazione (chì sò creati cù l' selector opzione ) ùn ponu micca esse distrutte individualmente nantu à elementi di trigger discendenti. |
enable |
Dà un tooltip d'elementu a capacità di esse mostratu. Tooltips sò attivati per difettu. |
getInstance |
Metudu staticu chì vi permette di uttene l'istanza di tooltip assuciata à un elementu DOM, o creà un novu in casu ùn hè micca inizializatu. |
getOrCreateInstance |
Metudu staticu chì vi permette di uttene l'istanza di tooltip assuciata à un elementu DOM, o creà un novu in casu ùn hè micca inizializatu. |
hide |
Nasconde u tooltip di un elementu. Ritorna à u chjamante prima chì a tooltip hè stata oculata (vale à dì prima chì l' hidden.bs.tooltip avvenimentu si faci). Questu hè cunsideratu un attivazione "manuale" di u tooltip. |
setContent |
Dà un modu per cambià u cuntenutu di u tooltip dopu a so inizializazione. |
show |
Revela u tooltip di l'elementu. Ritorna à u chjamante prima chì u tooltip hè statu veramente mostratu (vale à dì prima chì l' shown.bs.tooltip avvenimentu si faci). Questu hè cunsideratu un attivazione "manuale" di u tooltip. Tooltips cù tituli di lunghezza zero ùn sò mai affissati. |
toggle |
Commuta u tooltip di un elementu. Ritorna à u chjamante prima chì u tooltip hè statu veramente mostratu o oculatu (vale à dì prima chì l' avvenimentu shown.bs.tooltip o hidden.bs.tooltip si faci). Questu hè cunsideratu un attivazione "manuale" di u tooltip. |
toggleEnabled |
Commuta a capacità per chì u tooltip di un elementu sia mostratu o ammucciatu. |
update |
Aghjurnate a pusizione di u tooltip di un elementu. |
const tooltip = bootstrap.Tooltip.getInstance('#example') // Returns a Bootstrap tooltip instance
// setContent example
tooltip.setContent({ '.tooltip-inner': 'another title' })
setContent
metudu accetta un
object
argumentu, induve ogni chjave di pruprietà hè un
string
selettore validu in u mudellu popover, è ogni valore di pruprietà in relazione pò esse
string
|
element
|
function
|
null
Avvenimenti
Avvenimentu | Descrizzione |
---|---|
hide.bs.tooltip |
Questu avvenimentu hè sparatu immediatamente quandu u hide metudu di istanza hè statu chjamatu. |
hidden.bs.tooltip |
Questu avvenimentu hè sparatu quandu u popover hà finitu di esse oculatu da l'utilizatore (aspetterà chì e transizioni CSS finiscinu). |
inserted.bs.tooltip |
Questu avvenimentu hè sparatu dopu l' show.bs.tooltip avvenimentu quandu u mudellu di tooltip hè statu aghjuntu à u DOM. |
show.bs.tooltip |
Questu avvenimentu spara immediatamente quandu u show metudu di istanza hè chjamatu. |
shown.bs.tooltip |
Questu avvenimentu hè sparatu quandu u popover hè statu resu visibile à l'utilizatore (aspetterà chì e transizioni CSS finiscinu). |
const myTooltipEl = document.getElementById('myTooltip')
const tooltip = bootstrap.Tooltip.getOrCreateInstance(myTooltipEl)
myTooltipEl.addEventListener('hidden.bs.tooltip', () => {
// do something...
})
tooltip.hide()