Css примусове перенесення слів. Як додати за допомогою властивостей CSS перенесення рядка. У чому полягає відмінність одна властивості від іншої

Головна / Усунення несправностей

При верстці у веб-майстрів періодично виникає запитання: як здійснюватиметься перенесення тексту? У більшості випадків браузер самостійно справляється із цим завданням. Але іноді цей процес доводиться брати під контроль, особливо оформляючи довгі слова та фрази, які при неправильному перенесенні втрачають сенс.

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

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

Перевірка перенову слів

Вийшов громіздкий та потворний код, від якого у будь-якого розробника трапиться культурний шок. І як зробити, якщо ви захочете, щоб у десктопній версії логотип розташовувався горизонтально, а при ширині екрана менше 550 пікселів вертикально? Тому для налаштування зовнішнього виглядуелементів завжди використовуйте каскадні таблиці стилів. Тим більше, за допомогою інструментів CSS перенесеннярядки здійснюється елегантнішим способом. При цьому немає надмірної розмітки, яка тільки зменшує швидкість завантаження сторінок.

Перша властивість, до якої варто звернутися для обробки тексту, – це word-wrap. Приймає три значення: normal, break-all та keep-all. Вам для роботи потрібно запам'ятати тільки break-all. Normal стоїть за замовчуванням, і його немає сенсу вказувати. Keep-all означає у документі CSS заборону перенесення рядка. Розроблено спеціально для китайських, японських та корейських ієрогліфів. Тому, якщо ви не збираєтеся вести блог однією з цих мов, властивість вам не знадобиться. А також воно не підтримується браузером Safari та мобільними телефонамина базі iOS.

Щоб логотипу з попереднього прикладу призначити з допомогою CSSперенесення на новий рядок кожної літери, потрібно прописати наступний код:

P( font: bold 30px Helvetica, sans-serif; width: 25px; word-wrap: break-all; )

Ширина та розмір шрифту підбираються таким чином, щоб місця вистачало лише для однієї літери. Word-wrap зі значенням break-all повідомляє браузеру, що слово потрібно щоразу переносити на новий рядок. Незамінною цю властивість назвати не можна. Але воно стане в нагоді при оформленні невеликих блоків з текстом, наприклад полів для введення коментарів.

Властивість white-space

Поширена помилка веб-розробників-початківців — намагатися редагувати текст пробілами або натисканнями клавіші Enter, а потім дивуватися, чому їх зусилля не видно на сторінці. Скільки б ви не натиснули "Введення", браузер це проігнорує. Але є спосіб змусити його відображати текст так, як вам потрібно, і беручи до уваги всі інтервали.

У документі CSS перенос рядка, призначений за допомогою властивості white-space, можна налаштувати так, щоб він здійснювався з урахуванням пробілів або натискання клавіші "Введення". White-space із значенням pre-line змусить браузер бачити у тексті Enter.

Перевірка перенову слів

Якщо поміняти pre-line на pre-wrap у коді CSS, перенесення рядка відбудеться з урахуванням пропусків. І навпаки, заборонити будь-яке перенесення, надавши тексту властивість white-space зі значенням nowrap:

#wrapper p( color: #FFF; padding: 10px; font: bold 16px Helvetica, sans-serif; white-space: nowrap; )

Text-overflow

Ще один корисний інструмент для роботи з текстом – це text-overflow. Крім перенесення рядка, CSS-властивість дозволяє обрізати контент, коли контейнер переповнений. Приймає два значення:

  • clip – просто обрізає текст;
  • ellipsis - додає крапка.
#wrapper p(color: #FFF; padding: 10px; font: bold 16px Helvetica, sans-serif; text-overflow: ellipsis;/*Додаємо багатокрапка*/ white-space: nowrap; hidden;/*Ховаємо все, що виходить за рамки контейнера*/ )

Щоб властивість працювала, елементу також необхідно призначити заборону перенесення рядка і overflow зі значенням hidden.

Визначають як переносити довгі слова:

  1. тільки там, де стоїть рисочка, пробіл або Enter (викл., нерозривний пробіл і нерозривний дефіс -). Між частинами одного слова пишеться дефіс (наприклад, червоно-жовтий), між словами тире. "М'який дефіс" - проявляється лише за необхідності перенесення. Якщо слово виходить за межі батька, то або переносить його частину без рисочки. У математичних виразах використовується мінус (наприклад, 5-2). У номерах телефонів відображається цифрова риса (наприклад, +7 800 000-00-00). І все це не є тією знайомою, що є на клавіатурі.
  2. після будь-якого символу.
  3. згідно з правилами російської мови з автоматичним застосуванням дефісу.

overflow-wrap
word-wrap
word-break
line-break
hyphens

вже переоглядався наш 1919-кілограмовий корчувач-бульдозер-навантажувач

lang="ru"lang="ru">вже переоглядався наш тисяча дев'ятсот дев'яносто дев'ять - кілограмовий корчувач-бульдозер-навантажувач

У чому полягає відмінність одна властивості від іншої

За промовчанням довгі слова не переносяться, якщо на те немає явних вказівок за допомогою дефісу, і починаються з нового рядка.

Щоб ігнорувалися рисочки, відразу видимі оку, вносимо word-break: keep-all; .

Для того щоб браузер не звертав уваги і на м'який дефіс, вставляємо hyphens: none; .

Якщо потрібно перенесення слів, word-wrap: break-word; раджу застосовувати завжди, оскільки він розуміється усіма браузерами. Він відрізняється від word-break: break-all; , яке є пріоритетним, тим, що слова, які не містяться в блок, починаються з нового рядка та враховується рекомендація м'якого дефісу.

При спільному використанні word-break: break-all; з hyphens: auto; останнє ігнорується. hyphens: auto; розставляє будь-які дефіси на власний розсуд. Але для того, щоб воно працювало, потрібно позначити свою мову, вказавши div атрибут lang="ru" .

Не переносити слова на інший рядок

Скажімо, пункт меню або кнопка погано виглядатимуть, якщо роз'їдуться на частини. Тому треба заборонити їх поділ. Для чого всі вищезгадані властивості слід поставити в режим "за замовчуванням" і додати . Натисніть і подивіться на наш полігон.

Керувати перенесенням слів при hyphens: auto;

Тетрагідропіранілциклопентілтетрагідропіридопіридинові

Тетрагідропіранілциклопентілтетрагідропіридо піридиноши

Властивість white-space встановлює, як відображати пробіли між словами. У звичайних умовах будь-яка кількість пробілів у коді HTML відображається на веб-сторінці як один. Винятком є ​​елемент

, поміщений у цей контейнер текст виводиться з усіма пробілами, як його відформатовано користувачем.  Таким чином, white-space імітує роботу 
Але, на відміну від нього, не змінює шрифт на моноширинний.

коротка інформація

Позначення

Описприклад
<тип> Вказує тип значення.<размер>
A && BЗначення мають виводитися у вказаному порядку.<размер> && <цвет>
A | BВказує, що треба вибрати лише одне значення із запропонованих (A або B).normal | small-caps
A || BКожне значення може використовуватись самостійно або спільно з іншими у довільному порядку.width || count
Групує значення.[crop || cross]
* Повторювати нуль або більше разів.[,<время>]*
+ Повторювати один чи більше разів.<число>+
? Зазначений тип, слово чи група не є обов'язковим.inset?
(A, B)Повторювати щонайменше A, але з більше разів.<радиус>{1,4}
# Повторювати один або більше разів через кому.<время>#
×

Значення

normal Текст у вікні браузера виводиться як завжди, переноси рядків встановлюються автоматично. nowrap Пробіли не враховуються, перенесення рядків у коді HTML ігнорується, весь текст відображається одним рядком; разом з тим, додавання
переносить текст на новий рядок. pre Текст показується з урахуванням всіх пропусків і переносів, як вони були додані розробником у коді HTML. Якщо рядок виходить занадто довгим і не поміщається у вікні браузера, то буде додано горизонтальну смугу прокручування. pre-line У тексті прогалини не враховуються, текст автоматично переноситься на наступний рядок, якщо він не поміщається в задану область. pre-wrap У тексті зберігаються всі пробіли та переноси, проте якщо рядок по ширині не поміщається в задану область, то текст буде автоматично перенесений на наступний рядок.

Дія значень тексту представлено в табл. 1.

приклад

white-space

приклад

Велика теорема Ферма
X n+ Y n= Z n
де n – ціле число > 2

Результат даного прикладупоказано на рис. 1.

Рис. 1. Застосування якості white-space

Об'єктна модель

Об'єкт.style.whiteSpace

Примітка

Браузер Internet Explorerдо версії 7.0 включно не підтримує значення pre-line та pre-wrap . Для