CSS overflow-wrap — перенос довгого слова


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

overflow-wrap має ефект лише тоді, коли властивість white-space дозволяє перенесення (без задання).

На відміну від word-break, overflow-wrap лише створить розрив, якщо ціле слово не може бути розміщене у рядку без переповнення.

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

Властивість overflow-wrap

Властивість word-wrap працює в багатьох старих браузерах, а overflow-wrap - тільки в нових. Тому, в даний час, вказувати доводиться обидві властивості, спочатку застарілу (для старих браузерів), а потім нову (для нових браузерів):

селектор {
	word-wrap: break-word;
	overflow-wrap: break-word;
}
автор: Svitlana

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

автор: NagarD

Нотатка

word-wrap - це альтернативна назва overflow-wrap. Вони обидві роблять теж саме.

автор: Svitlana
Нотатка

Відсотковий запис не застосовується.

автор: Svitlana

Синтаксис

overflow-wrap: normal | break-word | inherit | initial | unset;

Властивість overflow-wrap може отримувати 5 значень:

normal

Рядки тексту можуть розбитись лише там де розташовані звичайні точки розриву слова (наприклад, пробіл між двома словами).

автор: Svitlana

break-word

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

автор: Svitlana

inherit

Вказує на спадковість властивості від свого батьківського елемента.

автор: Svitlana

initial

Встановлює властивість у значення без задання.

автор: Svitlana

unset

Комбінація ключових слів initial і inherit. Встановлює значення властивості як inherit, якщо властивість успадковується від свого батька, в іншому випадку значення встановлюється як initial.

автор: Svitlana

Значення без задання: normal
Наслідує: Так
Анімується: Ні
JavaScript синтаксис: element.style.overflowWrap = '';

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
23 49 7 12.1 18 5.5*
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 25 49 7

Приклади

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

Слово довше за колонку: без переносу воно вилазить за рамку, а break-word дозволяє розірвати його в будь-якому місці.

HTML

<p class="no">Без переносу: Superkalifragilisticexpialidocious</p>
<p class="yes">З break-word: Superkalifragilisticexpialidocious</p>

CSS

p {
    width: 160px;
    border: 1px solid #ccc;
    padding: 6px;
}

.yes {
    overflow-wrap: break-word;
}
автор: Svitlana

Простий приклад використання властивості

HTML

<p>This is very looooooooooooooooooong string. Do not worry about it...</p>
<p class="change">This is very looooooooooooooooooong string. Do not worry about it...</p>

CSS

p {
	background-color: #eee;
	padding: 4px 2px;
	font-size: 18px;
	width: 75px;
	display: inline-block;
	margin-right: 200px;
}

.change {
	overflow-wrap: break-word;
}
автор: Svitlana

Однакове довге посилання у вузькій колонці: без overflow-wrap воно вилазить за рамку, з break-word — переноситься.

HTML

<div class="box">
  <b>без overflow-wrap</b>
  <p>https://example.com/dovgyj-shljah/bez-zhodnogo-probilu-abo-defisa-vzagali</p>
</div>

<div class="box wrap">
  <b>overflow-wrap: break-word</b>
  <p>https://example.com/dovgyj-shljah/bez-zhodnogo-probilu-abo-defisa-vzagali</p>
</div>

CSS

.box {
    width: 200px;
    padding: 10px;
    margin-bottom: 20px;
    border: 2px solid #4a6fa5;
    background: #f3f6fa;
    font: 14px sans-serif;
}
.box p { margin: 6px 0 0; }
.wrap p { overflow-wrap: break-word; }
автор: NagarD

Приклад впливу різних значень на рядок тексту

HTML

<p>Вибери потрібні значення для <code>overflow-wrap</code>:</p>

<select id="form">
  <option value="normal" name="value2" selected>normal</option>
  <option value="break-word" name="value2">break-word</option>
</select>

<p id="text"></p>

<hr>

<p id="block">Lorem ipsum dolor sit amet consecteooooooooooooooooooooooooooooooooootur, adipisicing elit. Hic laboriosam ipsum enim iste cum velit eligendi magnam vel similique? Excepturi blanditiis ad mollitia autem nulla id eum perferendis provident atque corporis, nostrum accusamus unde illo, vel voluptate, perspiciatis inventore fugit culpa recusandae commodi voluptatem. Voluptates quasi perferendis deserunt saepe fugiat?</p>

CSS

* {
  box-sizing: border-box;
  padding: 0;
}

body {
  text-align: center;
  font-family: monospace;
  font-size: 17px;
  line-height: 1.5;
  color: #222;
}


#form {
  padding: 8px 16px;
  font-size: 19px;
}

#block {
  margin: 75px auto 0 auto;
  background: gold;
  padding: 16px;
  font-size: 18px;
  color: #222;
  width: 200px;
  overflow-wrap: break-word;
}

JS

var block = document.getElementById('block');
var form = document.getElementById('form');
var text = document.getElementById('text');

var textArray = { 'normal': 'Рядки тексту можуть розбитись лише там де розташовані звичайні точки розриву слова (наприклад, пробіл між двома словами).',
  'break-word': 'Щоб запобігти переповненню, нерозривні слова можуть бути перенесені в довільних точках, якщо в рядку відсутні іншим чином прийнятні точки переривання.' };

form.onchange = function change() {

  var newVal = getNewValue();
  block.style.wordWrap = newVal;
  text.innerHTML = textArray[newVal];

};

function getNewValue() {

  var result = '';

  for (var i = 0; i < form.options.length; i++) {if (window.CP.shouldStopExecution(0)) break;
    if (form.options[i].selected == true) {
      result = form.options[i].value;
    }
  }window.CP.exitedLoop(0);

  return result;

}
//# sourceURL=pen.js
автор: Svitlana

Коментарі

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

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

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

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

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