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


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

element.style.textOverflow – це властивість JavaScript, яка дозволяє встановлювати або отримувати спосіб обробки переповнення тексту в елементі. Ця властивість використовується разом із властивостями whiteSpace та overflow для керування відображенням тексту, який не поміщається в межах елемента.

Властивість textOverflow може мати три основні значення: clip, ellipsis та string. Значення clip просто обрізає текст, що не помістився в елемент, без додавання будь-яких візуальних підказок. Значення ellipsis додає три крапки ("...") в кінці тексту, щоб вказати на його обрізання. Значення string дозволяє використовувати власний рядок для позначення обрізання тексту.

Для використання textOverflow потрібно спочатку встановити властивості whiteSpace та overflow відповідним чином. Наприклад, whiteSpace має бути встановлено на nowrap або pre, а overflow – на hidden або scroll.

let element = document.getElementById('myElement');
element.style.whiteSpace = 'nowrap';
element.style.overflow = 'hidden';
element.style.textOverflow = 'ellipsis';

У цьому прикладі текст в елементі з ідентифікатором myElement, який не поміщається в межах елемента, буде обрізаний і в кінці буде додано три крапки.

Якщо потрібно встановити власний рядок для позначення обрізання тексту, використовується наступний код:

element.style.textOverflow = "'[...continued]'";

Цей код замінює стандартні три крапки на власний рядок "[...continued]", що може бути корисно для додаткового інформування користувача.

Отримати поточне значення textOverflow можна наступним чином:

let currentOverflow = element.style.textOverflow;
console.log(currentOverflow);

Цей код виведе поточне значення властивості textOverflow у консоль.

Важливо зазначити, що textOverflow працює тільки з блоковими або внутрішньо-блоковими (inline-block) елементами, і для правильного функціонування елемент має мати задану ширину. Наприклад:

element.style.width = '200px';

Цей рядок коду задає ширину елемента, щоб властивість textOverflow могла правильно обробляти переповнення тексту.

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

автор: Bond

Порада

При використанні textOverflow, не забудьте встановити відповідні значення для whiteSpace та overflow. Наприклад, element.style.whiteSpace = 'nowrap'; та element.style.overflow = 'hidden';. Без цих властивостей textOverflow не працюватиме належним чином, і текст не буде обрізатись.

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

Щоб перевірити, чи правильно працює textOverflow, можна додати індикатор довжини тексту. Наприклад, вставити наступний код:

let element = document.getElementById('myElement');
let originalText = element.textContent;
let textLengthIndicator = document.createElement('span');
textLengthIndicator.textContent = ` (Length: ${originalText.length})`;
element.appendChild(textLengthIndicator);

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

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

Для забезпечення більшої адаптивності сторінки, можна змінювати властивість textOverflow динамічно в залежності від розміру вікна браузера. Наприклад:

window.addEventListener('resize', function() {
    let element = document.getElementById('myElement');
    if (window.innerWidth < 600) {
        element.style.textOverflow = 'ellipsis';
    } else {
        element.style.textOverflow = 'clip';
    }
});

Це дозволить змінювати спосіб обробки переповнення тексту відповідно до розміру екрана.

автор: Bond

Синтаксис

element.style.textOverflow

Переглядачі

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

Приклади

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

У цьому прикладі метод textOverflow використовується для створення анімованого ефекту обрізання тексту при зміні розміру вікна. При ширині вікна менше 600 пікселів застосовується ellipsis, а при більшій ширині – clip. Анімація додає плавний перехід між різними стилями обрізання, покращуючи користувацький досвід при зміні розміру вікна.

HTML

<div id="animatedText">Демонстраційний елемент</div>

JS

function animateTextOverflow(element) {
    window.addEventListener('resize', function() {
        let windowWidth = window.innerWidth;
        if (windowWidth < 600) {
            element.style.textOverflow = 'ellipsis';
            element.style.transition = 'text-overflow 0.5s ease-in-out';
        } else {
            element.style.textOverflow = 'clip';
            element.style.transition = 'text-overflow 0.5s ease-in-out';
        }
    });
}

let animElement = document.getElementById('animatedText');
animateTextOverflow(animElement);
автор: Bond

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

HTML

<div id="localizedText">Демонстраційний елемент</div>

JS

function setTextOverflowBasedOnLanguage(element, language) {
    if (language === 'en') {
        element.style.textOverflow = 'ellipsis';
        element.style.whiteSpace = 'nowrap';
        element.style.overflow = 'hidden';
    } else if (language === 'ja') {
        element.style.textOverflow = "'... 続き'";
        element.style.whiteSpace = 'nowrap';
        element.style.overflow = 'hidden';
    }
}

let element = document.getElementById('localizedText');
let userLanguage = 'ja'; // Це значення може змінюватися в залежності від мови користувача
setTextOverflowBasedOnLanguage(element, userLanguage);
автор: Bond

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

автор: 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`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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