Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Januar 2020 browserübergreifend verfügbar.
Das <bdi>-HTML-Element weist den bidirektionalen Algorithmus des Browsers an, den in ihm enthaltenen Text isoliert von seinem umgebenden Text zu behandeln. Es ist besonders nützlich, wenn eine Website dynamisch Text einfügt und die Richtung des eingefügten Textes unbekannt ist.
Bidirektionaler Text ist Text, der sowohl Zeichenfolgen enthalten kann, die von links nach rechts (LTR) als auch Zeichenfolgen, die von rechts nach links (RTL) angeordnet sind, wie z. B. ein arabisches Zitat in einem englischen Satz. Browser implementieren den Unicode-Bidirektional-Algorithmus, um damit umzugehen. In diesem Algorithmus erhalten Zeichen eine implizite Richtung: Zum Beispiel werden lateinische Zeichen als LTR und arabische Zeichen als RTL behandelt. Einige andere Zeichen (wie Leerzeichen und einige Satzzeichen) werden als neutral behandelt und basierend auf den umgebenden Zeichen mit einer Richtung versehen.
Normalerweise macht der bidirektionale Algorithmus das Richtige, ohne dass der Autor spezielles Markup bereitstellen muss, aber gelegentlich benötigt der Algorithmus Unterstützung. An dieser Stelle kommt <bdi> zum Einsatz.
Das <bdi>-Element wird verwendet, um einen Textbereich zu umschließen und den bidirektionalen Algorithmus anzuweisen, diesen Text isoliert von seiner Umgebung zu behandeln. Dies funktioniert auf zwei Arten:
Betrachten Sie zum Beispiel einen Text wie:
EMBEDDED-TEXT - 1st placeWenn EMBEDDED-TEXT LTR ist, funktioniert dies einwandfrei. Aber wenn EMBEDDED-TEXT RTL ist, wird - 1 als RTL-Text behandelt (weil es aus neutralen und schwachen Zeichen besteht). Das Ergebnis wird durcheinander sein:
1 - EMBEDDED-TEXTst placeWenn Sie die Richtung von EMBEDDED-TEXT im Voraus kennen, können Sie dieses Problem beheben, indem Sie EMBEDDED-TEXT in einem <span> mit dem dir-Attribut versehen, das auf die bekannte Richtung eingestellt ist. Wenn Sie die Richtung jedoch nicht kennen - zum Beispiel, weil EMBEDDED-TEXT aus einer Datenbank gelesen oder vom Benutzer eingegeben wird - sollten Sie <bdi> verwenden, um zu verhindern, dass die Richtung von EMBEDDED-TEXT seine Umgebung beeinflusst.
Obwohl derselbe visuelle Effekt mit der CSS-Regel unicode-bidi: isolate auf einem <span> oder einem anderen Textformatierungselement erzielt werden kann, sollten HTML-Autoren diesen Ansatz nicht verwenden, da er nicht semantisch ist und Browser die CSS-Stilgestaltung ignorieren dürfen.
Das Einbetten der Zeichen in <span dir="auto"> hat den gleichen Effekt wie die Verwendung von <bdi>, aber seine Semantik ist weniger klar.
Wie alle anderen HTML-Elemente unterstützt dieses Element die globalen Attribute, mit der Ausnahme, dass das dir-Attribut sich anders als normal verhält: Es ist standardmäßig auf auto eingestellt, d.h. sein Wert wird nie vom übergeordneten Element geerbt. Das bedeutet, dass, wenn Sie keinen Wert von rtl oder ltr für dir angeben, der Benutzeragent die richtige Richtung basierend auf dem Inhalt des <bdi> ermittelt.
Dieses Beispiel listet die Gewinner eines Wettbewerbs nur mit <span>-Elementen auf. Wenn die Namen nur LTR-Text enthalten, sehen die Ergebnisse in Ordnung aus:
Dieses Beispiel listet die Gewinner eines Wettbewerbs nur mit <span>-Elementen auf, und einer der Gewinner hat einen Namen, der aus RTL-Text besteht. In diesem Fall wird das - 1, das aus Zeichen mit neutraler oder schwacher Richtung besteht, die Richtung des RTL-Textes annehmen und das Ergebnis wird durcheinander sein:
Dieses Beispiel listet die Gewinner eines Wettbewerbs mit <bdi>-Elementen auf. Diese Elemente weisen den Browser an, den Namen isoliert von seinem Einbettungskontext zu behandeln, sodass die Beispielausgabe korrekt geordnet ist:
| Fließinhalt, Phraseninhalt, greifbarer Inhalt. |
| Phraseninhalt. |
| Keine, sowohl das Start- als auch das End-Tag sind erforderlich. |
| Jedes Element, das Phraseninhalt akzeptiert. |
| generisch |
| Jede |
| [`HTMLElement`](/de/docs/Web/API/HTMLElement) |
| HTML # the-bdi-element |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.