0Pricing
HTML Academy · Lekcja

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

  1. Atrybut lang i czytniki ekranu
  2. dir=rtl dla tekstu pisanego od prawej do lewej
  3. Elementy bdi i bdo
  4. charset i obsługa Unicode — znaki specjalne
← Powrót do HTML Academy