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 - додає крапка.
Щоб властивість працювала, елементу також необхідно призначити заборону перенесення рядка і overflow зі значенням hidden.
Визначають як переносити довгі слова:
- тільки там, де стоїть рисочка, пробіл або Enter (викл., нерозривний пробіл і нерозривний дефіс -). Між частинами одного слова пишеться дефіс (наприклад, червоно-жовтий), між словами тире. "М'який дефіс" - проявляється лише за необхідності перенесення. Якщо слово виходить за межі батька, то
або переносить його частину без рисочки. У математичних виразах використовується мінус (наприклад, 5-2). У номерах телефонів відображається цифрова риса (наприклад, +7 800 000-00-00). І все це не є тією знайомою, що є на клавіатурі. - після будь-якого символу.
- згідно з правилами російської мови з автоматичним застосуванням дефісу.
overflow-wrap
word-wrap
word-break
line-break
hyphens
вже переоглядався наш 1919-кілограмовий корчувач-бульдозер-навантажувач
У чому полягає відмінність одна властивості від іншої
За промовчанням довгі слова не переносяться, якщо на те немає явних вказівок за допомогою дефісу, і починаються з нового рядка.
Щоб ігнорувалися рисочки, відразу видимі оку, вносимо 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.
приклад
приклад
Велика теорема Ферма
X n+ Y n= Z n
де n – ціле число > 2
Результат даного прикладупоказано на рис. 1.
Рис. 1. Застосування якості white-space
Об'єктна модель
Об'єкт.style.whiteSpace
Примітка
Браузер Internet Explorerдо версії 7.0 включно не підтримує значення pre-line та pre-wrap . Для
Opera до версії 9.5 не підтримує значення preline. Для
У Firefox для
Специфікація
Кожна специфікація проходить кілька стадій схвалення.
- Recommendation (Рекомендація) - специфікація схвалена W3C та рекомендована як стандарт.
- Candidate Recommendation ( Можлива рекомендація) - група, відповідальна за стандарт, задоволена, як він відповідає своїм цілям, але потрібна допомога спільноти розробників з реалізації стандарту.
- Proposed Recommendation ( Пропонована рекомендація) - на цьому етапі документ подано на розгляд Консультативної ради W3C для остаточного затвердження.
- Working Draft (Робочий проект) - більш зріла версія чернетки після обговорення та внесення поправок для розгляду спільнотою.
- Editor"s draft ( Редакторська чернетка) - Чорнова версія стандарту після внесення правок редакторами проекту.
- Draft ( Чернетка специфікації) – перша чорнова версія стандарту.
Властивість word-wrap вказує, переносити чи ні довгі слова, які поміщаються по ширині в задану область.
коротка інформація
Позначення
Опис | приклад | |
---|---|---|
<тип> | Вказує тип значення. | <размер> |
A && B | Значення мають виводитися у вказаному порядку. | <размер> && <цвет> |
A | B | Вказує, що треба вибрати лише одне значення із запропонованих (A або B). | normal | small-caps |
A || B | Кожне значення може використовуватись самостійно або спільно з іншими у довільному порядку. | width || count |
Групує значення. | [crop || cross] | |
* | Повторювати нуль або більше разів. | [,<время>]* |
+ | Повторювати один чи більше разів. | <число>+ |
? | Зазначений тип, слово чи група не є обов'язковим. | inset? |
(A, B) | Повторювати щонайменше A, але з більше разів. | <радиус>{1,4} |
# | Повторювати один або більше разів через кому. | <время># |
Значення
normal Рядки не переносяться або переносяться в тих місцях, де явно задано перенесення (наприклад, за допомогою
). break-word Перенесення рядків додається автоматично, щоб слово помістилося у задану ширину блоку.
приклад
Іменник
високопревосходительство
Одухотворене іменник
одинадцятикласниця
Хімічна речовина
метоксихлордіетиламінометилбутіламіноакридин
Результат цього прикладу показано на рис. 1.
Рис. 1. Перенесення довгих слів
Об'єктна модель
Об'єкт.style.wordWrap
Специфікація
Кожна специфікація проходить кілька стадій схвалення.
- Recommendation (Рекомендація) - специфікація схвалена W3C та рекомендована як стандарт.
- Candidate Recommendation ( Можлива рекомендація) - група, відповідальна за стандарт, задоволена, як він відповідає своїм цілям, але потрібна допомога спільноти розробників з реалізації стандарту.
- Proposed Recommendation ( Пропонована рекомендація) - на цьому етапі документ подано на розгляд Консультативної ради W3C для остаточного затвердження.
- Working Draft (Робочий проект) - більш зріла версія чернетки після обговорення та внесення поправок для розгляду спільнотою.
- Editor"s draft ( Редакторська чернетка) - Чорнова версія стандарту після внесення правок редакторами проекту.
- Draft ( Чернетка специфікації) – перша чорнова версія стандарту.
Всім привіт). Я продовжую писати про різні корисні властивостімови css, які так чи інакше можуть допомогти при верстці. І сьогодні я хочу розповісти, як робити у css перенесення слів, якщо вони не влазять у свій контейнер. Я покажу вам усе на реальному прикладі.
Включаємо перенесення для слів, які не влазять
Припустимо, у мене є блок шириною 100 пікселів і мені в нього потрібно написати якийсь текст. У тексті трапляється слово « саморозпаковується«. Таким буває архів, наприклад) Але не суть. Слово дуже довге, воно просто не влізе у контейнер по ширині. Давайте його напишемо до такого вузького блоку (100 пікселів). Що буде?
Як бачимо, бідне слово вилізло за межі контейнера, ну подітися йому нема куди, що поробиш. І це без відступів. Так ось, тут на допомогу приходить якість word-wrap. Ось що потрібно задати блоку, щоб увімкнути перенесення слів за літерами в ньому:
Word-wrap: break-word;
Для переконливості можна прописати ще й внутрішні відступи (padding). Отже, після застосування властивості бачимо, що занадто довгі слова переносяться по літерах на інший рядок. Причому навіть якщо другого рядка не вистачить для слова, то решта його частини перенесеться на третій і т.д.
Хочу відзначити, що якість можна без побоювань використовувати. По-перше, сьогодні воно чудово працює у браузерах. По-друге, воно працює по розумному. А саме, для всіх нормальних слів ніяких переносів не буде, переноситимуться слова цілком на наступний рядок, тому читабельність не порушиться. Ви можете побачити це на цьому скрині.
У яких випадках використовувати word-wrap
Власне, поки що бачу 2 варіанти використання. Перший – саме для вузьких блоків, де ви побоюєтеся, що довгі слова можуть некрасиво вилізти за межі блоку. Другий - це коли дизайнер задумав так, щоб назва сайту була в кілька рядків.
Отже, у цій статті ми довідалися, як робити перенесення слів у css. На цьому маю сьогодні все. До зустрічі.