Ноябрь 4, 2019 Запись была обновлена
Как создать перенос слов CSS — абзацы с переносом слов CSS
Продолжаем изучать возможности CSS3 и на очереди у нас перенос слов. Перенос слов является очень полезным свойством, потому что текст на странице смотрится красивее. Также, иногда приходится делать колонки как в газетах, и тогда выравнивание по правому или левому краю смотрится некрасиво. А вот если растянуть по всей ширине колонки, тогда и для глаза приятнее читать такой текст. Но и в этом случае есть такой нюанс как большие пространства между словами, что смотрится некрасиво. Это мы и будем исправлять в данном уроке.
Возможности CSS3:
- Границы css используя градиент
- Набор эффектов при наведении CSS
- Текст в несколько столбцов с помощью CSS3
- CSS3 повторение градиента
- Простые способы создать вертикальный текст на CSS
Изучая статьи, которая подобрал для вас, выше, вы также узнаете массу полезных свойств, а также узнаете о новых возможностях CSS3, которая позволяет использовать меньше еще меньше изображений на сайте.
Создаем перенос слов
Текст без переносов
Если кто-то не понял о чем идет речь, вот пример без использования переноса слов:
С переносами
А вот пример, когда мы используем перенос слов CSS:
Круто! А как это сделать в коде?
Сейчас, я думаю, все прекрасно понимают что мы будем делать. Поэтому пора узнать о новом свойстве, которое есть в CSS3!
А пишется это свойство вот так — hyphens.
Просто, не так ли? Но для каждого из браузеров есть свои префиксы, поэтому в коде это выглядит так:
1 2 3 4 5 6 7 8 | p { text-align: justify; /* текст необходимо растянуть на всю ширину блока, чтобы в дальнейшем переносить */ /* свойство переноса слов для разных браузеров */ -webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto; } |
Не забывайте растягивать текст по всей ширине блока с помощью свойства text-align: justify, иначе нужного результата вы не увидите.
Вывод
Короткий и простой урок, который позволит сделает ваш сайт еще более «удобным» для пользователя. Ведь мы ежедневно читаем огромное количество информации в сети — так давайте же сделаем этот процесс максимально приятным для посетителей! Ведь перенос слов CSS сделать очень легко, добавив пару строчек кода в ваш файл стилей.
Успехов!
С Уважением, Юрий Немец
Спасибо за ваше обращение!
Мы свяжемся с вами в течение 2-х часов (график работы: пн-пт, с 10 до 19)
Интересное и главное простое решение, надо запомнить, возможно пригодится в работе.
Юрий, спасибо! Очень ценная информация. Но как понять для какого браузера выбрать нужный код?
Елена, вот список префиксов, которые работают с этим свойством в разных браузерах:
p {
-webkit-hyphens: auto; /* для браузера Chrome и Safari */
-moz-hyphens: auto; /* для браузера Firefox */
-ms-hyphens: auto; /* для браузера Internet Explorer 10 */
hyphens: auto;
}
Но вам нужно писать обязательно все 4 свойства! Чтобы во всех этих браузерах был перенос слов.
Спасибо, Юрий!
вот и начали бы с себя..
Вам неудобно читать текст на моём сайте?
ни одного переноса в статье нет)
Переносы слов еще зависят от разрешения монитора: может быть такая ситуация, что на большом мониторе нет необходимости переносить слова, потому что они и так хорошо смотрятся.
Для примера я уменьшил ширину окна браузера (фото ниже):
Всё правильно человек написал:
Только это пока рабочий проект (см. – https://webref.ru/css/hyphens), поэтому некоторый браузеры поддерживают это свойство, а некоторые – нет.
На большом мониторе под Windows – не работает, а вот на планшете Lenovo Yoga Tablet 2 – переносы работают…
Юрий, спасибо! Но у меня не перенос слов получился, а просто текст стал ровнее (каждая строчка точно вписывается от первой буквы первого слова, до последей буквы последнего в каждой строке), поразительно!
Я смотрю, это за счет увеличения пробелов. Видно у меня там еще какое-то правило прописано.
В приличных печатных изданиях переносы слов осуществляются по правилам русского языка. Видимо, CCS3 применяет какой-то общий алгоритм переноса для всех языков?
Надо для меню задать правило — переносим на новую строку все слова кроме первого.
1 Всегда
или
2. Когда не помещаются
Как реализовать?
Виноват. Не для меню, а для названия модуля.
Ребят, на самом деле, если у вас не работают переносы, дело тут не в ширине окна браузера. Словарь переносов хранится в браузере и подключается только при наличии атрибута lang с кодом языка. Так, для русского языка следует добавить lang="ru" к элементу <html> или непосредственно к абзацу текста.
Удачи!
Переносы не работают в Chrome и Opera.
Единственное кросс-браузерное решение — это вставить мягкие переносы (мнемокод "­") в места, где вы допускаете вставлять дефис и разбивать слово с последующим переносом в случае возможности (если ширина позволяет). Можно воспользоваться сервисом автоматической расстановки мягких переносов, вставляете, например, там текст "расставить переносы правильно" и получаете готовый html — "рас­ста­вить пе­ре­но­сы пра­виль­но" его вставляете у себя на сайте. Всё будет переноситься предсказуемо и кросс-браузерно.
Можете в сервисе ограничить длину слова в которых необходимо расставить мягкие переносы, если хотите разбивать только длинные слова. Потом можно это текст опять редактировать, просто вставив на том же сервисе туда, где его скопировали и т.д.