Wiesselt op den Haaptinhalt Wiesselt op d'Docs Navigatioun
Check
in English

Tooltips

Dokumentatioun an Beispiller fir personaliséiert Bootstrap Tooltips mat CSS a JavaScript ze addéieren mat CSS3 fir Animatiounen an Data-bs-Attributer fir lokal Titellagerung.

Iwwersiicht

Saachen ze wëssen wann Dir den Tooltip Plugin benotzt:

  • Tooltips vertrauen op der drëtter Partei Bibliothéik Popper fir positionéieren. Dir musst popper.min.js virun enthalen bootstrap.js, oder een benotzen bootstrap.bundle.min.jsdeen Popper enthält.
  • Tooltips sinn opt-in aus Leeschtungsgrënn, also musst Dir se selwer initialiséieren .
  • Tooltips mat Null-Längt Titelen ginn ni ugewisen.
  • Spezifizéieren container: 'body'fir Rendering Probleemer a méi komplexe Komponenten ze vermeiden (wéi eis Inputgruppen, Knäppchengruppen, etc.).
  • Ausléiser Tooltips op verstoppte Elementer funktionnéieren net.
  • Tooltips fir .disabledoder disabledElementer muss op engem wrapper Element ausgeléist ginn.
  • Wann aus Hyperlinks ausgeléist gëtt, déi méi Zeilen spanen, ginn Tooltips zentréiert. Benotzt white-space: nowrap;op Är <a>s dëst Verhalen ze vermeiden.
  • Tooltips musse verstoppt ginn ier hir entspriechend Elementer aus der DOM geläscht ginn.
  • Tooltips kënnen ausgeléist ginn duerch en Element an engem Schied DOM.

Huet dat alles? Super, loosst eis kucken wéi se mat e puer Beispiller funktionnéieren.

Par défaut benotzt dës Komponent den agebauten Inhalt Sanitizer, deen all HTML Elementer ausstreift déi net explizit erlaabt sinn. Kuckt de Sanitizer Sektioun an eiser JavaScript Dokumentatioun fir méi Detailer.
Den Animatiounseffekt vun dëser Komponent hänkt vun der prefers-reduced-motionMedienufro of. Kuckt d' Reduktiounsbewegungssektioun vun eiser Accessibilitéitsdokumentatioun .

Beispiller

Aktivéiert Tooltips

Wéi uewen ernimmt, musst Dir Tooltips initialiséieren ier se benotzt kënne ginn. Ee Wee fir all Tooltipps op enger Säit ze initialiséieren wier se no hirem data-bs-toggleAttribut ze wielen, sou wéi:

const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))

Hover iwwer d'Links hei drënner fir Tooltipps ze gesinn:

Placeholder Text fir e puer Inline Links mat Tooltips ze demonstréieren. Dëst ass elo just Filler, kee Killer. Inhalt hei gesat just fir d'Präsenz vum richtegen Text ze mimikéieren . An dat alles just fir Iech eng Iddi ze ginn wéi Tooltipps ausgesinn wann se an real-Welt Situatiounen benotzt ginn. Also hoffentlech hutt Dir elo gesinn wéi dës Tooltipps iwwer Links an der Praxis funktionéiere kënnen, wann Dir se op Ärem eegene Site oder Projet benotzt.

html
<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>
Fillt Iech gratis entweder titleoder data-bs-titlean Ärem HTML ze benotzen. Wann titleet benotzt gëtt, ersetzt de Popper et automatesch mat data-bs-titlewann d'Element ofgeleet gëtt.

Benotzerdefinéiert Tooltips

Dobäi an v5.2.0

Dir kënnt d'Erscheinung vun Tooltips mat CSS Variablen personaliséieren . Mir setzen eng personaliséiert Klass mat data-bs-custom-class="custom-tooltip"fir eis personaliséiert Erscheinung ze beräicheren a benotzen se fir eng lokal CSS Variabel ze iwwerschreiden.

.custom-tooltip {
  --bs-tooltip-bg: var(--bs-primary);
}
html
<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>

Richtungen

Hover iwwer d'Knäppercher hei drënner fir déi véier Tooltips Richtungen ze gesinn: uewen, riets, ënnen a lénks. D'Richtunge gi gespigelt wann Dir Bootstrap an RTL benotzt.

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

A mat personaliséierten HTML dobäigesat:

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

Mat engem SVG:

CSS

Variablen

Dobäi an v5.2.0

Als Deel vum Bootstrap senger evoluéierender CSS Variablen Approche benotzen Tooltips elo lokal CSS Variablen op .tooltipfir eng verstäerkte Echtzäit Personnalisatioun. Wäerter fir d'CSS Variablen ginn iwwer Sass gesat, sou datt Sass Personnalisatioun och nach ëmmer ënnerstëtzt gëtt.

  --#{$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};
  

Sass Variablen

$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

Benotzung

Den Tooltip Plugin generéiert Inhalt a Markup op Ufro, a setzt als Standard Tooltip no hirem Ausléiserelement.

Ausléiser den Tooltip iwwer JavaScript:

const exampleEl = document.getElementById('example')
const tooltip = new bootstrap.Tooltip(exampleEl, options)
Iwwerschwemmung autoanscroll

Tooltip Positioun probéiert automatesch z'änneren wann en Elterendeel Container huet overflow: autooder overflow: scrollwéi eis .table-responsive, awer hält ëmmer d'originell Plazéierungspositioun. Fir dëst ze léisen, setzt d' boundaryOptioun (fir de Flip-Modifier deen d' popperConfigOptioun benotzt) op all HTMLElement fir de Standardwäert ze iwwerschreiden, 'clippingParents', wéi document.body:

const tooltip = new bootstrap.Tooltip('#example', {
  boundary: document.body // or document.querySelector('#boundary')
})

Markup

Déi erfuerderlech Markup fir e Tooltip ass nëmmen en dataAttribut an titleam HTML Element wëllt Dir e Tooltip hunn. De generéierte Markup vun engem Tooltip ass zimmlech einfach, awer et erfuerdert eng Positioun (par défaut, topvum Plugin gesat).

Maacht Tooltips fir Tastatur an Hëllefstechnologie Benotzer ze schaffen

Dir sollt nëmmen Tooltipps un HTML Elementer addéieren déi traditionell Tastatur fokusséierbar an interaktiv sinn (wéi Linken oder Form Kontrollen). Och wann arbiträr HTML Elementer (wéi <span>s) fokusséierbar gemaach kënne ginn andeems d' tabindex="0"Attribut bäigefüügt gëtt, wäert dëst potenziell lästeg a verwirrend Tabstops op net-interaktiven Elementer fir Keyboard Benotzer addéieren, an déi meescht Hëllefstechnologien annoncéieren de Moment net den Tooltip an dëser Situatioun. Zousätzlech, vertrau net eleng op hoverden Ausléiser fir Ären Tooltip, well dëst wäert Är Tooltipps onméiglech maachen fir Tastatur Benotzer auszeléisen.

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

Behënnert Elementer

Elementer mat dem disabledAttribut sinn net interaktiv, dat heescht d'Benotzer kënnen net fokusséieren, hoveren oder klicken fir en Tooltip (oder Popover) auszeléisen. Als Léisung wëllt Dir den Tooltip aus engem Wrapper ausléisen <div>oder <span>, Idealfall gemaach Keyboard-fokusséierbar mat tabindex="0".

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

Optiounen

Wéi Optiounen kënnen iwwer Dateattributer oder JavaScript weidergeleet ginn, kënnt Dir en Optiounsnumm op data-bs-, wéi an data-bs-animation="{value}". Vergewëssert Iech de Falltyp vum Optiounsnumm vun " camelCase " op " Kebab-Case " z'änneren wann Dir d'Optiounen iwwer Datenattributer passéiert. Zum Beispill benotzt data-bs-custom-class="beautifier"amplaz data-bs-customClass="beautifier".

Zënter Bootstrap 5.2.0 ënnerstëtzen all Komponenten en experimentellen reservéierten Dateattribut, data-bs-configdeen eng einfach Komponentkonfiguratioun als JSON-String kann ënnerhuelen. Wann en Element data-bs-config='{"delay":0, "title":123}'an data-bs-title="456"Attributer huet, gëtt de Finale titleWäert 456an déi getrennten Dateattributter iwwerschreiden Wäerter, déi op data-bs-config. Zousätzlech kënnen existent Datenattributer JSON Wäerter wéi data-bs-delay='{"show":0,"hide":150}'.

Bedenkt datt aus Sécherheetsgrënn d' sanitize, sanitizeFn, an d' allowListOptiounen net mat Datenattributer geliwwert kënne ginn.
Numm Typ Default Beschreiwung
allowList Objet Default Wäert Objet deen erlaabt Attributer an Tags enthält.
animation boolesch true Fëllt en CSS Fade Iwwergank op den Tooltip un.
boundary string, element 'clippingParents' Iwwerschwemmungsgrenze vum Tooltip (gëlt nëmme fir Popper's preventOverflow-Modifier). Par défaut ass et 'clippingParents'a kann eng HTMLElement Referenz akzeptéieren (nëmmen iwwer JavaScript). Fir méi Informatioun kuckt op Popper's detectOverflow docs .
container String, Element, falsch false Fügt den Tooltip un e spezifescht Element un. Beispill container: 'body':. Dës Optioun ass besonnesch nëtzlech well et Iech erlaabt den Tooltip am Flux vum Dokument no beim Ausléiserelement ze positionéieren - wat verhënnert datt den Tooltip vum Ausléiserelement wärend enger Fënstergréisst schwëmmt.
customClass string, Funktioun '' Füügt Klassen un den Tooltip wann et gewise gëtt. Bedenkt datt dës Klassen zousätzlech zu all Klassen, déi an der Schabloun uginn sinn, bäigefüügt ginn. Fir méi Klassen ze addéieren, trennt se mat Plazen 'class-1 class-2':. Dir kënnt och eng Funktioun weiderginn, déi eng eenzeg String mat zousätzlech Klassennimm zréckginn soll.
delay nummer, objekt 0 Verzögerung weisen an verstoppen Tooltip (ms) - gëlt net fir manuell Ausléisertyp. Wann eng Zuel geliwwert gëtt, gëtt Verspéidung fir béid verstoppen / weisen applizéiert. Objektstruktur ass delay: { "show": 500, "hide": 100 }:.
fallbackPlacements Array ['top', 'right', 'bottom', 'left'] Definéiert Fallbackplacementer andeems Dir eng Lëscht vu Placementer an der Array ubitt (an der Preferenzuerdnung). Fir méi Informatioun, kuckt op dem Popper säi Verhalensdokumenter .
html boolesch false Erlaabt HTML am Tooltip. Wann et richteg ass, ginn HTML-Tags an den Tooltip am Tooltip titlerendered. Wann falsch, gëtt innerTextd'Eegeschafte benotzt fir Inhalt an d'DOM anzeginn. Benotzt Text wann Dir besuergt sidd iwwer XSS Attacken.
offset Array, String, Funktioun [0, 0] Offset vum Tooltip relativ zu sengem Zil. Dir kënnt eng String an Datenattributer mat komma getrennte Wäerter passéieren wéi data-bs-offset="10,20":. Wann eng Funktioun benotzt gëtt fir d'Offset ze bestëmmen, gëtt se mat engem Objet genannt deen d'Popper Placement enthält, d'Referenz a Popper Rects als säin éischten Argument. Den Ausléiserelement DOM Node gëtt als zweet Argument weidergeleet. D'Funktioun muss en Array mat zwou Zuelen zréckginn: Skidding , Distanz . Fir méi Informatioun kuckt op dem Popper seng Offset Docs .
placement string, Funktioun 'top' Wéi positionéiert de Tooltip: Auto, uewen, ënnen, lénks, riets. Wann autospezifizéiert ass, wäert et den Tooltip dynamesch nei orientéieren. Wann eng Funktioun benotzt gëtt fir d'Placement ze bestëmmen, gëtt se mam Tooltip DOM Node als éischt Argument an dem Ausléiserelement DOM Node als zweet genannt. De thisKontext gëtt op d'Tooltip Instanz gesat.
popperConfig null, Objet, Funktioun null Fir d'Standard Popper Configuratioun vum Bootstrap z'änneren, kuckt d' Popper Konfiguratioun . Wann eng Funktioun benotzt gëtt fir d'Popper Konfiguratioun ze kreéieren, gëtt se mat engem Objet genannt deen d'Standard Popper Konfiguratioun vum Bootstrap enthält. Et hëlleft Iech de Standard mat Ärer eegener Konfiguratioun ze benotzen an ze fusionéieren. D'Funktioun muss e Configuratiounsobjekt fir Popper zréckginn.
sanitize boolesch true Aktivéiert oder deaktivéiert d'Sanéierung. Wann aktivéiert 'template', 'content'an d' 'title'Optioune ginn desinfizéiert.
sanitizeFn null, funktion null Hei kënnt Dir Är eege Sanitärfunktioun ubidden. Dëst kann nëtzlech sinn wann Dir léiwer eng speziell Bibliothéik benotze fir Sanéierung ze maachen.
selector string, falsch false Wann e Selektor zur Verfügung gestallt gëtt, ginn Tooltip-Objeten op déi spezifizéiert Ziler delegéiert. An der Praxis gëtt dëst benotzt fir och Tooltipps op dynamesch dobäigesate DOM Elementer ( jQuery.onËnnerstëtzung) anzesetzen. Kuckt dëst Thema an en informativt Beispill .
template String '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' Baséiert HTML fir ze benotzen wann Dir den Tooltip erstellt. D'Tooltip titlegëtt an de .tooltip-inner. .tooltip-arrowwäert de Pfeil vum Tooltip ginn. Dat äusserst Wrapperelement sollt d' .tooltipKlass an role="tooltip".
title String, Element, Funktioun '' Standard Titelwäert wann titleAttribut net präsent ass. Wann eng Funktioun gëtt, gëtt se genannt mat senger thisReferenz op d'Element, op deem de Popover verbonnen ass.
trigger String 'hover focus' Wéi Tooltip ausgeléist gëtt: klickt, hover, fokusséieren, manuell. Dir kënnt verschidde Ausléiser passéieren; trennt se mat engem Raum. 'manual'weist datt den Tooltip programmatesch iwwer d' .tooltip('show'), .tooltip('hide')a .tooltip('toggle')Methoden ausgeléist gëtt; dëse Wäert kann net mat all aner Ausléiser kombinéiert ginn. 'hover'eleng wäert zu Tooltipps resultéieren, déi net iwwer d'Tastatur ausgeléist kënne ginn, a sollten nëmme benotzt ginn wann alternativ Methoden fir déiselwecht Informatioun fir Tastaturbenotzer präsent sinn.

Donnéeën Attributer fir eenzel tooltips

Optiounen fir eenzel Tooltips kënnen alternativ duerch d'Benotzung vun Datenattributer spezifizéiert ginn, wéi uewen erkläert.

Benotzt Funktioun matpopperConfig

const tooltip = new bootstrap.Tooltip(element, {
  popperConfig(defaultBsPopperConfig) {
    // const newPopperConfig = {...}
    // use defaultBsPopperConfig if needed...
    // return newPopperConfig
  }
})

Methoden

Asynchron Methoden an Iwwergäng

All API Methoden sinn asynchron a starten en Iwwergang . Si ginn zréck op den Uruffer soubal den Iwwergang ugefaang ass, awer ier en eriwwer ass . Zousätzlech gëtt e Methodruff op eng Iwwergangskomponent ignoréiert .

Kuckt eis JavaScript Dokumentatioun fir méi Informatioun .

Method Beschreiwung
disable Entfernt d'Fäegkeet fir den Tooltip vun engem Element ze weisen. Den Tooltip kann nëmme gewise ginn wann et nei ageschalt ass.
dispose Verstoppt an zerstéiert den Tooltip vun engem Element (läscht gespäichert Daten am DOM-Element). Tooltipps déi Delegatioun benotzen (déi mat der selectorOptioun erstallt ginn ) kënnen net individuell op Descendant Trigger Elementer zerstéiert ginn.
enable Gëtt dem Tooltip vun engem Element d'Méiglechkeet ze weisen. Tooltips sinn als Standard aktivéiert.
getInstance Statesch Method déi Iech erlaabt d'Tooltip Instanz mat engem DOM Element assoziéiert ze kréien, oder eng nei ze kreéieren am Fall datt se net initialiséiert gouf.
getOrCreateInstance Statesch Method déi Iech erlaabt d'Tooltip Instanz mat engem DOM Element assoziéiert ze kréien, oder eng nei ze kreéieren am Fall datt se net initialiséiert gouf.
hide Verstoppt den Tooltip vun engem Element. Gitt zréck op den Uruffer ier den Tooltip tatsächlech verstoppt gouf (dh ier d' hidden.bs.tooltipEvenement geschitt ass). Dëst gëtt als "manuell" Ausléisung vum Tooltip ugesinn.
setContent Gëtt e Wee fir den Inhalt vum Tooltip no senger Initialiséierung z'änneren.
show Entdeckt den Tooltip vun engem Element. Gitt zréck op den Uruffer ier den Tooltip tatsächlech gewisen gouf (dh ier d' shown.bs.tooltipEvenement geschitt ass). Dëst gëtt als "manuell" Ausléisung vum Tooltip ugesinn. Tooltips mat Null-Längt Titelen ginn ni ugewisen.
toggle Wiesselt den Tooltip vun engem Element. Gitt zréck op den Uruffer ier den Tooltip tatsächlech gewisen oder verstoppt goufshown.bs.tooltip ( dh ier den hidden.bs.tooltipEvent geschitt ass). Dëst gëtt als "manuell" Ausléisung vum Tooltip ugesinn.
toggleEnabled Wiesselt d'Fäegkeet fir den Tooltip vun engem Element ze weisen oder ze verstoppen.
update Aktualiséiert d'Positioun vum Tooltip vun engem Element.
const tooltip = bootstrap.Tooltip.getInstance('#example') // Returns a Bootstrap tooltip instance

// setContent example
tooltip.setContent({ '.tooltip-inner': 'another title' })
D' setContentMethod akzeptéiert en objectArgument, wou all Propriétéit-Schlëssel eng valabel stringselector bannent Popover Schabloun ass, an all Zesummenhang Propriétéit-Wäert kann string| element| function| null

Evenementer

Event Beschreiwung
hide.bs.tooltip Dëst Evenement gëtt direkt gebrannt wann d' hideInstanzmethod genannt gouf.
hidden.bs.tooltip Dëst Evenement gëtt ofgeléist wann de Popover fäerdeg ass vum Benotzer verstoppt ze ginn (waart op CSS Iwwergäng fir fäerdeg ze sinn).
inserted.bs.tooltip Dëst Evenement gëtt nom show.bs.tooltipEvent ofgeschaaft wann d'Tooltip Schabloun un d'DOM bäigefüügt gouf.
show.bs.tooltip Dëst Event brennt direkt wann d' showInstanzmethod genannt gëtt.
shown.bs.tooltip Dëst Evenement gëtt ausgeléist wann de Popover fir de Benotzer siichtbar gemaach gouf (waart bis CSS Iwwergäng fäerdeg sinn).
const myTooltipEl = document.getElementById('myTooltip')
const tooltip = bootstrap.Tooltip.getOrCreateInstance(myTooltipEl)

myTooltipEl.addEventListener('hidden.bs.tooltip', () => {
  // do something...
})

tooltip.hide()