Elementy bdi i bdo
Izolowanie i nadpisywanie kierunku tekstu za pomocą bdi i bdo
Elementy bdi i bdo to bezpłatna lekcja HTML Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej HTML Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs HTML Academy zawiera 4 lekcji w sumie.
Dlaczego używać elementów sterujących bidi
Algorytm dwukierunkowości Unicode zwykle dobrze obsługuje tekst o mieszanych kierunkach, ale czasami trzeba go nadpisać — aby odizolować nazwę podaną przez użytkownika, tak by nie zmieniała kierunku otaczającego tekstu, albo wymusić określony kierunek w bloku kodu.
Element bdi
<bdi> (izolacja dwukierunkowa) traktuje swoją zawartość jako osobny kontekst dwukierunkowy. Kierunek tekstu wewnątrz <bdi> nie może wpływać na kierunek tekstu poza nim i odwrotnie.
<p>User <bdi>{username}</bdi> posted at 12:34</p>Przypadek użycia: nazwy użytkowników
Lista użytkowników zawierająca angielskie i arabskie imiona niesie ryzyko, że nazwy arabskie „przenikną” ze swoim przepływem RTL do otaczającego tekstu. Otoczenie każdej nazwy elementem <bdi> izoluje ją, dzięki czemu układ pozostaje spójny niezależnie od kierunku danej nazwy.
Element bdo
<bdo dir="rtl"> (nadpisanie kierunku dwukierunkowego) wymusza określony kierunek zawartości, nadpisując naturalne rozstrzyganie dwukierunkowości. Należy go użyć, gdy tekst ma być wyświetlany w kierunku innym niż naturalny — na przykład do renderowania fragmentów kodu w kierunku LTR na stronie RTL.
<bdo dir="ltr">someEnglishCode();</bdo>Różnica w porównaniu z dir
Atrybut dir na zwykłym elemencie ustawia bazowy kierunek, a algorytm dwukierunkowości nadal działa wewnątrz niego. <bdo> wyłącza algorytm dwukierunkowości dla swojej zawartości — każdy znak płynie ściśle w określonym kierunku, niezależnie od użytego skryptu.
Kiedy używać bdi
Za każdym razem, gdy osadza się tekst wygenerowany przez użytkownika w otaczających elementach interfejsu — na przykład nazwy w nagłówkach czatu, nazwy użytkowników w komentarzach lub tytuły elementów kanału. Izolacja gwarantuje, że układ interfejsu pozostanie niezależny od tego, co wpisze użytkownik.
Kiedy używać bdo
Rzadko. Główne uzasadnione zastosowanie to nauka o tekście dwukierunkowym (pokazywanie, jak wygląda odwrócony ciąg znaków) lub poprawianie nieprawidłowo oznaczonych danych, gdy naturalne ustalanie kierunku tekstu daje niewłaściwą kolejność wizualną.
W połączeniu z dir="auto"
W przypadku treści użytkownika o nieznanym kierunku należy dla dodatkowego bezpieczeństwa połączyć <bdi dir="auto">: automatyczne wykrywanie wybiera kierunek bazowy na podstawie treści, a bdi zapobiega przenikaniu tego kierunku do otaczającego tekstu.
Obsługa w przeglądarkach
bdi i bdo są obsługiwane przez każdą współczesną przeglądarkę. Są częścią HTML5 i od lat działają stabilnie. Starsze wersje IE nie obsługują bdi, ale są już praktycznie przestarzałe; we współczesnych witrynach można swobodnie używać bdi.
Ułatwienia dostępu
Czytniki ekranu respektują izolację kierunku tekstu: tekst wewnątrz <bdi> jest odczytywany przy użyciu głosu właściwego dla jego języka (gdy ustawiono lang), bez przenikania kontekstu otaczającego tekstu. bdi pomaga także syntezie mowy wstawiać odpowiednie pauzy wokół odizolowanych fraz.
Typowy wzorzec: i18n w szablonach
W szablonach zawierających symbole zastępcze ("Witamy, {name}") symbol zastępczy należy umieścić w <bdi>: Welcome, <bdi>{name}</bdi>. Każda nazwa użytkownika — angielska, arabska lub mieszana — zostanie wyświetlona poprawnie, bez zakłócania pozostałej części powitania.
Sprawdzenie wiedzy
Jaka jest praktyczna różnica między a ?
Podsumowanie
bdi izoluje kierunek tekstu sekcji, dzięki czemu nie wpływa on na otoczenie — należy go używać dla osadzonych treści użytkownika, takich jak nazwy w szablonach. bdo wymusza określony kierunek, nadpisując algorytm bidi, i rzadko jest potrzebny poza przykładami dydaktycznymi. bdi należy łączyć z dir="auto", aby bezpiecznie obsługiwać tekst użytkownika w nieznanych językach.
Często zadawane pytania
Czy lekcja „Elementy bdi i bdo” jest bezpłatna?
Tak — pełny tekst „Elementy bdi i bdo” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu HTML Academy, przejdź na CoddyKit PRO. Kurs HTML Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Elementy bdi i bdo”?
Izolowanie i nadpisywanie kierunku tekstu za pomocą bdi i bdo Ćwiczysz HTML Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć HTML Academy?
Nie wymagamy żadnego doświadczenia. HTML Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Elementy bdi i bdo”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji HTML Academy?
Tak. Każda lekcja HTML Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Atrybut lang i czytniki ekranu
- dir=rtl dla tekstu pisanego od prawej do lewej
- Elementy bdi i bdo
- charset i obsługa Unicode — znaki specjalne