bdi, bdo

설명
글자를 읽는 방향 지정 다양한 언어가 혼합된 경우 유용 영어, 프랑스어는 왼쪽에서 오른쪽으로 읽음. 아랍어, 히브리어는 오른쪽에서 왼쪽으로 읽음.
Primary
content category
flow
phrasing

개요

웹에서 다국어 지원을 하거나 특정 언어의 텍스트를 표시할 때 텍스트 방향을 제어하는 것이 중요합니다.
방향성을 올바르게 설정하지 않으면 텍스트가 엉뚱하게 보이거나 제대로 읽히지 않을 수 있습니다.
 

<bdi> (Bidirectional Isolation)

글자를 읽는 방향을 명시.
주로 다양한 언어가 혼합된 경우에 유용.
  • 페이지의 기본 언어가 왼쪽→오른쪽(영어)인데,
  • 아랍어와 같은 오른쪽→왼쪽 언어가 텍스트 안에 포함된 경우,
<bdi>를 사용하여 해당 텍스트의 방향성을 독립적으로 처리할 수 있습니다.
<p>The amount is <bdi>₪1000</bdi></p>
 

<bdo> (Bidirectional Override)

<bdo>는 텍스트 방향을 명시적으로 설정할 때 사용.
예를 들어, 텍스트가 기본적으로 왼쪽에서 오른쪽으로 읽히지만, 특정 텍스트에 대해 오른쪽에서 왼쪽으로 읽도록 하거나 그 반대로 강제로 설정할 수 있습니다.
  • ltr : left to right →
  • rtl : right to left ←
<p>This is <bdo dir="rtl">right-to-left text</bdo> in the middle of a sentence.</p>
 

둘의 차이점

  • <bdi>:
    • 동적으로 삽입되는 텍스트불확실한 텍스트 방향성에 대비하여 사용됩니다.
    • 브라우저가 알아서 텍스트 방향성(LTR 또는 RTL)을 결정합니다.
    • 주변 텍스트와 독립적으로 처리되고, 브라우저가 텍스트의 언어를 인식하여 알맞은 방향성으로 표시합니다.
  • <bdo>:
    • 내가 명시적으로 텍스트 방향성을 설정할 때 사용됩니다.
    • dir 속성을 사용하여 LTR 또는 RTL을 직접 지정합니다.
    • 이 경우, 텍스트의 방향성을 강제로 변경합니다.