CSS - Unicode-bidi 속성: 이중 방향 텍스트 마스터링

안녕하세요, 미래의 웹 개발자 여러분! 오늘 우리는 흥미로운 여정을 떠나 CSS의 세계로 나아가고,처음에는 조금 두려울 수 있는 속성을 탐구해보겠습니다: unicode-bidi. 하지만 걱정 마세요, 이 튜토리얼이 끝나면, 당신은 이중 방향 텍스트를 마스터하는 프로가 될 것입니다!

CSS - Unicode-bidi

Unicode-bidi는 무엇인가요?

먼저, unicode-bidi에 대해 이해해 보겠습니다. 영어(왼쪽에서 오른쪽으로)와 아랍어(오른쪽에서 왼쪽으로)를 포함한 다 언어 웹사이트를 작성하는 상상해 봅시다. 각 언어가 올바르게 표시되도록 어떻게 해야 할까요? 바로 unicode-bidi가 구원자로 등장합니다!

unicode-bidi 속성은 CSS에서 이중 방향 텍스트를 다루는 데 유용한 당신의 충실한 동반자입니다. 이 속성은 문서에서 이중 방향 텍스트가 어떻게 처리되는지 제어하여, 작성 방향에 관계없이 콘텐츠가 올바르게 표시되도록 도와줍니다.

가능한 값

unicode-bidi 속성의 가능한 값을 살펴보겠습니다:

설명
normal 엘리먼트는 추가적인 임bedding 레벨을 여는 않음
embed 추가적인 임bedding 레벨을 여는 것
bidi-override 이중 방향 알고리즘에 대한 오버라이드를 생성
isolate 엘리먼트는 형제 요소들로부터 분리됨
isolate-override 'isolate'와 'bidi-override'의 효과를 결합
plaintext 엘리먼트는 분리되고 이중 방향 포맷팅이 재설정됨

이제 이 것들이 혼란스러울 수 있지만, 예제와 함께 자세히 탐구해보겠습니다!

적용 대상

unicode-bidi 속성은 모든 엘리먼트에 적용할 수 있습니다. 그러나 일반적으로 인라인 엘리먼트나 display: inline으로 설정된 엘리먼트에 가장 많이 사용됩니다.

DOM 문법

JavaScript에서 unicode-bidi를 사용하려면 다음과 같은 문법을 사용할 수 있습니다:

object.style.unicodeBidi = "value"

이제 각 값을 하나씩 탐구하고, 그들이 어떻게 작동하는지 보겠습니다!

CSS unicode-bidi - normal 값

normal 값은 기본 설정입니다. 이는 이중 방향 알고리즘에 대한 추가적인 임bedding 레벨을 여지 않습니다.

<p style="unicode-bidi: normal;">
This is English text.これは日本語のテキストです.
</p>

이 예제에서 텍스트는 다음과 같이 표시됩니다:

This is English text.これは日本語のテキストです.

영어 텍스트는 왼쪽에서 오른쪽으로, 일본어 텍스트는 오른쪽에서 왼쪽으로 자연스러운 방향을 따릅니다.

CSS unicode-bidi - embed 값

embed 값은 이중 방향 알고리즘에 대한 추가적인 임bedding 레벨을 여습니다.

<p style="unicode-bidi: embed; direction: rtl;">
This is English text.これは日本語のテキストです.
</p>

이는 다음과 같이 표시됩니다:

.これは日本語のテキストです This is English text.

전체 문단이 오른쪽에서 왼쪽으로 처리되지만, 영어 텍스트는 왼쪽에서 오른쪽 방향을 유지합니다.

CSS unicode-bidi - bidi-override 값

bidi-override 값은 이중 방향 알고리즘에 대한 오버라이드를 생성합니다. 텍스트의 방향을 direction 속성과 일치시킵니다.

<p style="unicode-bidi: bidi-override; direction: rtl;">
This is English text.これは日本語のテキストです.
</p>

이는 다음과 같이 표시됩니다:

.txet hsilgnE si sihT .stetsetuqoJ no noitpecxe

이 경우, 모든 텍스트는 오른쪽에서 왼쪽으로 처리되며, 영어 텍스트의 글자 순서도 뒤집어집니다.

CSS unicode-bidi - isolate 값

isolate 값은 엘리먼트를 형제 요소들로부터 이중 방향 포맷팅 측면에서 분리합니다.

<p>This is <span style="unicode-bidi: isolate; direction: rtl;">これは日本語のテキストです</span> some English text.</p>

이는 다음과 같이 표시됩니다:

This is これは日本語のテキストです some English text.

일본어 텍스트는 분리되어 오른쪽에서 왼쪽으로 표시되며, 주변 영어 텍스트는 영향을 받지 않습니다.

CSS unicode-bidi - isolate-override 값

isolate-override 값은 isolatebidi-override의 효과를 결합합니다.

<p>This is <span style="unicode-bidi: isolate-override; direction: rtl;">English text</span> in a sentence.</p>

이는 다음과 같이 표시됩니다:

This is txet hsilgnE in a sentence.

span 안의 텍스트는 분리되어 완전히 뒤집어집니다.

CSS unicode-bidi - plaintext 값

plaintext 값은 엘리먼트를 분리하고 이중 방향 포맷팅을 재설정합니다.

<p style="direction: rtl;">
This is <span style="unicode-bidi: plaintext;">some English text</span> بعض النص العربي
</p>

이는 다음과 같이 표시됩니다:

بعض النص العربي some English text This is

span 안의 영어 텍스트는 자연스러운 왼쪽에서 오른쪽 방향으로 표시되며, 부모의 오른쪽에서 왼쪽 방향에 영향을 받지 않습니다.

CSS unicode-bidi - 관련 속성

unicode-bidi를 사용할 때, 자주 사용하는 관련 속성들이 있습니다:

속성 설명
direction 텍스트 방향을 설정
writing-mode 텍스트 줄이 수평으로还是垂直으로 배치되는지 정의

unicode-bidi 속성은 direction 속성과 함께 이중 방향 텍스트의 흐름을 제어하는 데 사용됩니다.

결론

축하합니다! 당신은 unicode-bidi의 세계로 깊이 빠져들었습니다. 이 속성은 처음에는 복잡해 보일 수 있지만, 다 언어 웹사이트에서 매우 유용한 도구입니다. 오늘 배운 내용을 기억하고, 다양한 값을 실험해 보세요.

웹 개발의 여정을 계속하면서, 이중 방향 텍스트를 이해하는 것이 중요한 상황을 많이 만나게 될 것입니다. 글로벌 청중을 위한 웹사이트를 만들거나 로컬라이제이션 프로젝트를 진행할 때, 오늘 배운 기술이 큰 도움이 될 것입니다.

계속 코딩하고, 배우고, 가장 중요한 것은 즐거운 시간을 보내세요! 웹 개발의 세계는 흥미로운 도전 과제가 가득하며, unicode-bidi와 같은 속성을 마스터하는 것은 여정의 시작에 불과합니다. 행복하게 코딩하세요!

Credits: Image by storyset