JS властивість CSSStyleDeclaration.unicodeBidi


Загальний опис

element.style.unicodeBidi - це властивість CSS, яку можна використовувати через JavaScript для зміни порядку відображення тексту з метою підтримки двонаправленого тексту (Bidi).

unicodeBidi працює в парі з іншою CSS властивістю direction. Властивість unicodeBidi визначає, як текстовий контент обробляється, коли в одному текстовому елементі використовується змішання правостороннього та лівостороннього тексту. Ця властивість може мати значення normal, embed або bidi-override.

Значення normal означає, що двонаправлений текст обробляється за замовчуванням згідно з алгоритмом Unicode для двонаправленого тексту. Це значення встановлюється за замовчуванням.

Значення embed створює новий рівень впровадження для тексту, дозволяючи змінювати напрямок тексту всередині цього елементу без впливу на оточуючий текст.

Значення bidi-override працює подібно до embed, але воно змушує весь текст відображатися у напрямку, визначеному властивістю direction, незалежно від його початкового напрямку.

Для використання властивості unicodeBidi через JavaScript, ви можете звертатися до неї як до частини об'єкту style конкретного HTML-елемента. Розглянемо приклади використання цієї властивості.

// Припустимо, у нас є елемент з id 'textElement'
var element = document.getElementById('textElement');

// Встановимо для елемента значення unicodeBidi як 'embed'
element.style.unicodeBidi = 'embed';

// Встановимо напрямок тексту як правосторонній
element.style.direction = 'rtl';

У цьому прикладі текст всередині елемента textElement буде оброблятися як вкладений і напрямок тексту буде змінено на правосторонній.

Ще один приклад, коли необхідно повністю змінити напрямок відображення тексту:

// Припустимо, у нас є елемент з id 'overrideText'
var overrideText = document.getElementById('overrideText');

// Встановимо для елемента значення unicodeBidi як 'bidi-override'
overrideText.style.unicodeBidi = 'bidi-override';

// Встановимо напрямок тексту як лівосторонній
overrideText.style.direction = 'ltr';

У цьому випадку весь текст в елементі overrideText буде відображатися зліва направо, навіть якщо він містить символи, які зазвичай відображаються справа наліво.

Таким чином, властивість element.style.unicodeBidi дозволяє вам контролювати, як змішаний текст відображається на вашій веб-сторінці, що особливо корисно для підтримки інтерфейсів на кількох мовах з різними напрямками письма.

автор: Bond

Порада

Якщо у вас виникають проблеми з відображенням тексту в елементах списку або таблиці, спробуйте застосувати unicodeBidi для цих елементів. Це може виправити неочікувані зміни напрямку тексту і зробити відображення більш послідовним. Це допоможе зберегти логічну структуру даних і забезпечити кращу читаємість контенту.

автор: Bond
Порада

Використання unicodeBidi може покращити доступність вашого веб-сайту для користувачів з різними мовами. Застосовуйте цю властивість, щоб забезпечити правильне відображення тексту на мовах з різними напрямками письма, що може зробити ваш сайт більш зручним для міжнародної аудиторії. Це також підвищить задоволеність користувачів і знизить кількість помилок при читанні контенту.

автор: Bond
Порада

Коли потрібно відображати числові значення разом з текстом на мові, яка пишеться справа наліво, використовуйте unicodeBidi для забезпечення правильної орієнтації чисел. Це особливо корисно в звітах або фінансових документах, де важливо зберегти правильний порядок чисел, щоб уникнути плутанини і помилок.

автор: Bond

Синтаксис

element.style.unicodeBidi

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
2 1 1.3 9.2 12 5.5
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі користувач може вибирати напрямок тексту (ліворуч-праворуч або праворуч-ліворуч) за допомогою перемикачів. В залежності від вибору, текст в елементі буде відображатися відповідним чином, що демонструє роботу властивості unicodeBidi у поєднанні з direction.

автор: Bond

Цей приклад показує, як можна динамічно змінювати напрямок тексту на веб-сторінці на основі мови, обраної користувачем. Це особливо корисно для багатомовних веб-сайтів, де важливо, щоб текст правильно відображався для користувачів, які говорять різними мовами з різними напрямками письма.

HTML

<p id="content">приклад тексту для перемикання напрямку</p>

JS

function setTextDirectionBasedOnLanguage(elementId, language) {
    var element = document.getElementById(elementId);

    if (language === 'ar' || language === 'he') {
        element.style.direction = 'rtl';
        element.style.unicodeBidi = 'embed';
    } else {
        element.style.direction = 'ltr';
        element.style.unicodeBidi = 'embed';
    }
}

setTextDirectionBasedOnLanguage('content', 'ar'); // справа наліво
setTextDirectionBasedOnLanguage('content', 'en'); // назад, зліва направо
автор: Bond

У цьому прикладі показано, як можна додавати повідомлення в чат з підтримкою двонаправленого тексту. Використання властивості unicodeBidi дозволяє забезпечити правильне відображення тексту, незалежно від мови повідомлення. Це корисно для міжнародних чат-додатків, де користувачі можуть спілкуватися різними мовами.

HTML

<div id="chatContainer"></div>

JS

function addChatMessage(containerId, message, isRtl) {
    var container = document.getElementById(containerId);
    var newMessage = document.createElement('div');

    newMessage.textContent = message;

    if (isRtl) {
        newMessage.style.direction = 'rtl';
        newMessage.style.unicodeBidi = 'bidi-override';
    } else {
        newMessage.style.direction = 'ltr';
        newMessage.style.unicodeBidi = 'bidi-override';
    }

    container.appendChild(newMessage);
}

addChatMessage('chatContainer', 'مرحبا بك في الدردشة', true);
addChatMessage('chatContainer', 'Ласкаво просимо в чат', false);
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід