CSS - Свойство Unicode-bidi: Мастерство bidirectional текста

Здравствуйте, будущие веб-разработчики! Сегодня мы отправимся в увлекательное путешествие в мир CSS и рассмотрим свойство, которое может показаться немного пугающим на первый взгляд: unicode-bidi. Но не волнуйтесь, к концу этого учебника вы будете работать с bidirectional текстом как профессионал!

CSS - Unicode-bidi

Что такое Unicode-bidi?

Прежде чем мы углубимся в детали, давайте поймем, что такое unicode-bidi. Представьте, что вы пишете многоязычный веб-сайт, который включает как английский (слева направо), так и арабский (справа налево) текст. Как обеспечить правильное отображение каждого языка? Вот где на помощь приходит unicode-bidi!

Свойство unicode-bidi - ваш надежный помощник при работе с bidirectional текстом в CSS. Оно помогает вам контролировать, как обрабатывается bidirectional текст в документе, обеспечивая правильное отображение контента независимо от направления письма.

Possible Values (Возможные значения)

Давайте рассмотрим возможные значения свойства unicode-bidi:

Значение Описание
normal Элемент не открывает дополнительный уровень嵌入式
embed Открывает дополнительный уровень嵌入式
bidi-override Создает override для bidirectional алгоритма
isolate Элемент изолирован от своих兄弟
isolate-override Combines the effects of both 'isolate' and 'bidi-override' (Комбинирует эффекты 'isolate' и 'bidi-override')
plaintext Элемент изолирован и bidirectional форматирование сброшено

Не волнуйтесь, если они кажутся вам запутанными сейчас. Мы рассмотрим каждый из них подробнее с примерами!

Applies to (Применяется к)

Свойство unicode-bidi может быть применено ко всем элементам. Однако оно наиболее часто используется с инлайновыми элементами или элементами, для которых установлено display: inline.

DOM Syntax (Синтаксис DOM)

Чтобы использовать unicode-bidi в вашем JavaScript, вы можете использовать следующий синтаксис:

object.style.unicodeBidi = "value"

Теперь давайте углубимся в каждое значение и посмотрим, как они работают в действии!

CSS unicode-bidi - normal Value (Значение normal)

Значение normal является стандартным параметром. Оно не открывает дополнительный уровень嵌入式 по отношению к bidirectional алгоритму.

<p style="unicode-bidi: normal;">
This is English text. هذا نص عربي.
</p>

В этом примере текст будет отображаться как:

This is English text. هذا نص عربي.

Английский текст слева направо, а арабский текст справа налево, следуя своим естественным направлениям.

CSS unicode-bidi - embed Value (Значение embed)

Значение embed открывает дополнительный уровень嵌入式 по отношению к bidirectional алгоритму.

<p style="unicode-bidi: embed; direction: rtl;">
This is English text. هذا نص عربي.
</p>

Это будет отображаться как:

.هذا نص عربي This is English text.

Здесь весь абзац рассматривается как справа налево, но английский текст сохраняет свое направление слева направо в общем контексте RTL.

CSS unicode-bidi - bidi-override Value (Значение bidi-override)

Значение bidi-override создает override для bidirectional алгоритма. Оно принуждает направление текста соответствовать свойству direction.

<p style="unicode-bidi: bidi-override; direction: rtl;">
This is English text. هذا نص عربي.
</p>

Это будет отображаться как:

.يبرع صن اذه .txet hsilgnE si sihT

В этом случае весь текст рассматривается строго как справа налево, даже порядок символов в английском тексте изменяется.

CSS unicode-bidi - isolate Value (Значение isolate)

Значение isolate изолирует элемент от своих兄弟 в отношении bidirectional форматирования.

<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 Value (Значение isolate-override)

Значение isolate-override комбинирует эффекты isolate и bidi-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 Value (Значение plaintext)

Значение plaintext изолирует элемент и сбрасывает bidirectional форматирование до implicit направления.

<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 - Related Properties (Связанные свойства)

工作时使用 unicode-bidi, вы часто будете использовать следующие связанные свойства:

Свойство Описание
direction Устанавливает направление текста
writing-mode Определяет, горизонтально или вертикально располагаются строки текста

Помните, что свойство unicode-bidi работает в тандеме с свойством direction, чтобы контролировать поток bidirectional текста.

Заключение

Поздравляю! Вы только что погрузились в мир unicode-bidi. Это свойство может показаться сложным в начале, но оно бесценный инструмент при работе с многоязычными веб-сайтами. Помните, что практика makes perfect, так что не стесняйтесь экспериментировать с различными значениями и видеть, как они влияют на ваш текст.

Пока вы продолжаете свое путешествие в веб-разработке, вы столкнетесь с множеством ситуаций, где понимание bidirectional текста является важным. Независимо от того, создаете ли вы веб-сайт для глобальной аудитории или работаете над проектом локализации, навыки, которые вы сегодня learned, будут служить вам хорошо.

Продолжайте программировать, продолжайте учиться и, самое главное, получайте удовольствие! Мир веб-разработки полон захватывающих задач, и овладение свойствами, такими как unicode-bidi, всего лишь начало вашего приключения. Счастливого кодирования!

Credits: Image by storyset