bdi- ja bdo-elementit
Eristä ja ohita tekstin suunta bdi- ja bdo-elementeillä
bdi- ja bdo-elementit on ilmainen HTML Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu HTML Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. HTML Academy-kurssilla on yhteensä 4 oppituntia.
Miksi bidi-ohjauselementtejä käytetään
Unicoden bidi-algoritmi käsittelee normaalisti erisuuntaista tekstiä hyvin, mutta joskus sitä on ohitettava — esimerkiksi jotta käyttäjän antama nimi ei muuta ympäröivän tekstin suuntaa tai jotta koodilohkolle voidaan pakottaa tietty suunta.
bdi-elementti
<bdi> (kaksisuuntaisuuden eristys) käsittelee sisältöään erillisenä bidi-kontekstina. <bdi>-elementin sisällä olevan tekstin suunta ei voi vaikuttaa sen ulkopuolisen tekstin suuntaan eikä päinvastoin.
<p>User <bdi>{username}</bdi> posted at 12:34</p>Käyttötapaus: käyttäjien nimet
Englannin- ja arabiankielisiä nimiä sisältävä käyttäjäluettelo voi aiheuttaa sen, että arabialaisen nimen RTL-suunta leviää ympäröivään tekstiin. Kun kukin nimi ympäröidään <bdi>-elementillä, se eristetään: asettelu pysyy yhdenmukaisena riippumatta siitä, kumpaan suuntaan nimi sattuu olemaan.
bdo-elementti
<bdo dir="rtl"> (kaksisuuntaisuuden ohitus) pakottaa sisällölle tietyn suunnan ja ohittaa luonnollisen bidi-tulkinnan. Käytä sitä, kun haluat näyttää tekstin luonnollisesta poikkeavassa suunnassa — esimerkiksi renderöidäksesi koodiesimerkit LTR-suuntaisina RTL-sivulla.
<bdo dir="ltr">someEnglishCode();</bdo>Ero dir-attribuuttiin
Tavallisen elementin dir-attribuutti asettaa perussuunnan, mutta bidi-algoritmi toimii edelleen elementin sisällä. <bdo> poistaa bidi-algoritmin käytöstä sisällöltään — jokainen merkki kulkee tarkasti määritettyyn suuntaan kirjoitusjärjestelmästä riippumatta.
Milloin bdi-elementtiä käytetään
Aina, kun käyttäjän luomaa tekstiä upotetaan ympäröivään käyttöliittymätekstiin — esimerkiksi nimiä chat-otsikoihin, käyttäjänimiä kommentteihin tai otsikoita syöteluettelon kohteisiin. Eristys varmistaa, ettei käyttäjän kirjoittama teksti vaikuta käyttöliittymän asetteluun.
Milloin bdo:ta käytetään
Harvoin. Ainoa varsinainen käyttötarkoitus on kaksisuuntaisen tekstin opettaminen (sen näyttäminen, miltä merkkijono näyttää käännettynä) tai huonosti merkittyjen tietojen korjaaminen silloin, kun luonnollinen bidi-resoluutio tuottaa väärän visuaalisen järjestyksen.
Yhdessä dir="auto"-määritteen kanssa
Tuntemattoman suunnan käyttäjäsisällössä kannattaa käyttää <bdi dir="auto">-elementtiä kaksinkertaisen varmistuksen vuoksi: automaattinen tunnistus valitsee perussuunnan sisällön perusteella, ja bdi estää tämän suunnan vuotamisen ympäröivään tekstiin.
Selaintuki
bdi:tä ja bdo:ta tuetaan kaikissa moderneissa selaimissa. Ne kuuluvat HTML5:een, ja ne ovat olleet vakaita jo vuosia. IE:n vanhemmista versioista puuttuu bdi, mutta nämä versiot ovat toiminnallisesti vanhentuneita; moderneissa sivustoissa bdi:tä voi käyttää vapaasti.
Saavutettavuus
Ruudunlukijat noudattavat bidi-eristystä: teksti <bdi>-elementin sisällä luetaan omalla kieliäänellään (kun lang on määritetty), eikä ympäröivä konteksti pääse vaikuttamaan siihen. bdi auttaa myös puhesynteesiä tuottamaan asianmukaiset tauot eristettyjen ilmausten ympärille.
Yleinen malli: i18n mallineissa
Mallineissa, joissa on paikanvaraajia ("Tervetuloa, {name}"), paikanvaraaja kannattaa ympäröidä <bdi>-elementillä: Welcome, <bdi>{name}</bdi>. Käyttäjän nimi — englanniksi, arabiaksi tai näitä sekoittaen — näytetään oikein häiritsemättä muun tervehdyksen esitystä.
Tietotesti
Mikä on - ja -elementtien käytännön ero?
Yhteenveto
bdi eristää osan tekstin suunnan niin, ettei se vaikuta ympäröivään tekstiin — sitä käytetään upotettuun käyttäjäsisältöön, kuten nimissä mallineissa. bdo pakottaa tietyn suunnan ohittaen bidin, ja sitä tarvitaan harvoin opetusesimerkkien ulkopuolella. Yhdistämällä bdi:n määritteeseen dir="auto" käyttäjän antamaa, tuntemattomalla kielellä olevaa tekstiä voidaan käsitellä turvallisesti.
Opi HTML tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 40
- Oppitunnit
- 159
Usein kysytyt kysymykset
Onko oppitunti ”bdi- ja bdo-elementit” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa HTML Academy-oppimispolun 3 oppituntia, myös oppitunnin “bdi- ja bdo-elementit”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. HTML Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”bdi- ja bdo-elementit”?
Eristä ja ohita tekstin suunta bdi- ja bdo-elementeillä Harjoittelet HTML Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni HTML Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin HTML Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”bdi- ja bdo-elementit”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä HTML Academy-oppitunnilla?
Kyllä. Jokainen HTML Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- lang-attribuutti ja ruudunlukijat
- dir=rtl oikealta vasemmalle kirjoitettavalle tekstille
- bdi- ja bdo-elementit
- charset ja Unicode-käsittely: erikoismerkit