Naar de inhoud
Gratis naslagwerk over HTML
HTML leren en naslaan
Naslag / Tekst en koppen

Het element <bdi>

Het <bdi>-HTML-element geeft het bidirectionele algoritme van de browser de opdracht om de tekst die het bevat geïsoleerd van de omringende tekst te behandelen. Dit is met name nuttig wanneer een website dynamisch tekst invoegt en de richting van de ingevoegde tekst niet kent.

Code
<h1>World wrestling championships</h1>

<ul>
  <li><bdi class="name">Evil Steven</bdi>: 1st place</li>
  <li><bdi class="name">François fatale</bdi>: 2nd place</li>
  <li><span class="name">سما</span>: 3rd place</li>
  <li><bdi class="name">الرجل القوي إيان</bdi>: 4th place</li>
  <li><span class="name" dir="auto">سما</span>: 5th place</li>
</ul>
Resultaat in de browser

Attributen

Zoals alle andere HTML-elementen ondersteunt dit element de globale attributen, met dien verstande dat het dir-attribuut zich anders gedraagt dan gebruikelijk: het staat standaard op auto, wat betekent dat de waarde nooit wordt overgenomen van het bovenliggende element. Dit betekent dat, tenzij je een waarde van rtl of ltr opgeeft voor dir, de user agent de juiste richting bepaalt op basis van de inhoud van de <bdi>.

Voorbeelden

Geen bdi met alleen LTR

Dit voorbeeld toont een lijst met winnaars van een wedstrijd met alleen <span>-elementen. Wanneer de namen alleen LTR-tekst bevatten, zien de resultaten er goed uit:

HTML
<ul>
  <li><span class="name">Henrietta Boffin</span> - 1st place</li>
  <li><span class="name">Jerry Cruncher</span> - 2nd place</li>
</ul>
CSS
body {
  border: 1px solid #3f87a6;
  max-width: calc(100% - 40px - 6px);
  padding: 20px;
  width: calc(100% - 40px - 6px);
  border-width: 1px 1px 1px 5px;
}
Resultaat in de browser

Geen bdi met RTL-tekst

Dit voorbeeld toont een lijst met winnaars van een wedstrijd met alleen <span>-elementen, waarbij de naam van een van de winnaars uit RTL-tekst bestaat. In dit geval neemt - 1, dat bestaat uit tekens met neutrale of zwakke richting, de richting van de RTL-tekst over, en wordt het resultaat verminkt:

HTML
<ul>
  <li><span class="name">اَلأَعْشَى</span> - 1st place</li>
  <li><span class="name">Jerry Cruncher</span> - 2nd place</li>
</ul>
CSS
body {
  border: 1px solid #3f87a6;
  max-width: calc(100% - 40px - 6px);
  padding: 20px;
  width: calc(100% - 40px - 6px);
  border-width: 1px 1px 1px 5px;
}
Resultaat in de browser

bdi gebruiken met LTR- en RTL-tekst

Dit voorbeeld toont een lijst met winnaars van een wedstrijd met <bdi>-elementen. Deze elementen geven de browser de opdracht om de naam geïsoleerd van zijn insluitende context te behandelen, zodat de voorbeelduitvoer correct geordend is:

HTML
<ul>
  <li><bdi class="name">اَلأَعْشَى</bdi> - 1st place</li>
  <li><bdi class="name">Jerry Cruncher</bdi> - 2nd place</li>
</ul>
CSS
body {
  border: 1px solid #3f87a6;
  max-width: calc(100% - 40px - 6px);
  padding: 20px;
  width: calc(100% - 40px - 6px);
  border-width: 1px 1px 1px 5px;
}
Resultaat in de browser

Technische samenvatting

Inhoudscategorieën Flow content, phrasing content, palpable content.
Toegestane inhoud Phrasing content.
Weglaten van tags Geen, zowel de begin- als de eindtag zijn verplicht.
Toegestane bovenliggende elementen Elk element dat phrasing content accepteert.
Impliciete ARIA-rol generic
Toegestane ARIA-rollen Elke
DOM-interface HTMLElement

Zie ook

Verwante elementen