Содержание

Переносы слов | htmlbook.ru

В отличие от текста в полиграфии, на веб-странице редко применяются переносы, поскольку мы не привязаны жёстко к формату бумаги. Сайты могут смотреть на разных мониторах, с разным разрешением, в разных операционных системах и браузерах. Всё это порождает такое сочетание комбинаций, что предугадать, как будет выглядеть конечный текст для пользователя невозможно. Из-за этого обычно текст выравнивается по левому краю, а переносы происходят словами целиком. Но всё же переносы слов в некоторых случаях нужны, например, когда применяются длинные химические или медицинские термины, в узких колонках заданной ширины, ради эстетики. В HTML и CSS ручных или автоматических способов добавления переносов не так уж и много, так что перечислю все.

Использование тега <wbr>

Тег <wbr> введён в HTML5 и создаёт перенос слов при необходимости. В тех местах, где по правилам русского языка допустим перенос, вставляем <wbr> (пример 1). Если слово целиком помещается в отведённую ширину, этот тег никак себя не проявит и о его наличии мы даже не узнаем. Если слово не помещается, браузер в месте нахождения тега <wbr> создаёт перенос.

Пример 1. Тег <wbr>

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Переносы</title>
  <style>
   .word { 
    width: 160px; 
    background: #f0f0f0;
    border: 1px solid #333;
    padding: 10px;
    font-size: 18px;
   }
  </style>
 </head>
 <body>
  <p>Один<wbr>надцатиклас<wbr>сница 
  Анжелика после окончания школы выбрала профессию 
  дело<wbr>произ<wbr>водитель<wbr>ницы.</p>
 </body>
</html>

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

Рис. 1. Текст с переносами слов

Мягкий перенос

Применение <wbr> имеет серьёзный недостаток — понять, перенос перед нами или отдельное слово на другой строке, нельзя. Из-за этого может потеряться смысл предложения и его неправильно поймут. Переносы надо делать по правилам типографики, а именно: в конце строки добавлять дефис. С этим отлично справляется мягкий перенос, в коде HTML для него имеется спецсимвол &shy;. Он выполняет ту же роль, что и тег <wbr> — не виден в обычном тексте и переносит слово на другую строку, при этом добавляя дефис (пример 2).

Пример 2. Мягкий перенос

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Переносы</title>
  <style>
   .word { 
    width: 160px; 
    background: #f0f0f0;
    border: 1px solid #333;
    padding: 10px;
    font-size: 18px;
   }
  </style>
 </head>
 <body>
  <p>Один&shy;надцатиклас&shy;сница Анжелика 
  после окончания школы выбрала профессию 
  дело&shy;произ&shy;водитель&shy;ницы.</p>
 </body>
</html>

Результат данного примера показан на рис. 2. Заметьте, насколько эстетичнее и понятнее стал выглядеть текст в сравнении с рис. 1.

Рис. 2. Текст с переносами слов

Свойство word-break

Чтобы автоматизировать процесс создания переносов воспользуйтесь свойством word-break со значением break-all (пример 3).

Добавлять какие-либо символы или теги в HTML уже не придётся, всё берут на себя стили.

Пример 3. Применение word-break

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Переносы</title>
  <style>
   .word { 
    width: 160px; 
    background: #f0f0f0;
    border: 1px solid #333;
    padding: 10px;
    font-size: 18px;
    word-break: break-all;
   }
  </style>
 </head>
 <body>
  <p>Одиннадцатиклассница Анжелика после окончания школы
  выбрала профессию делопроизводительницы.</p>
 </body>
</html>

Результат данного примера показан на рис. 3. Правила переносов текста в этом случае не учитываются, поэтому слова могут переноситься весьма причудливым образом.

Рис. 3. Текст с переносами слов

Из всех перечисленных способов «полуручной» с использованием &shy; даёт наилучший результат — соблюдаются правила русского языка, текст выглядит наиболее эстетично. Пользуйтесь им, когда в тексте встречаются длинные слова.

Свойство hyphens

И, наконец, самое мощное и удобное свойство для автоматического добавления переносов — hyphens. Его действие основано на встроенном в браузере словаре переносов, поэтому даёт наилучший результат. Поддерживается в IE10, Firefox, Android и iOS. Chrome и Opera не поддерживают. Чтобы это всё работало, для тега <html> добавляем атрибут lang со значением ru (пример 4).

Пример 4. Использование hyphens

<!DOCTYPE html>
<html lang="ru">
 <head>
  <meta charset="utf-8">
  <title>Переносы</title>
  <style>
   .word { 
    width: 160px; 
    background: #f0f0f0;
    border: 1px solid #333;
    padding: 10px;
    font-size: 18px;
    -moz-hyphens: auto;
    -webkit-hyphens: auto;
    -ms-hyphens: auto;
   }
  </style>
 </head>
 <body>
  <p>Одиннадцатиклассница Анжелика 
  после окончания школы выбрала профессию 
  делопроизводительницы.
</p> </body> </html>

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

Рис. 4. Текст с переносами слов

Запрет переносов

Нередко возникает и обратная задача — запретить переносы в тех местах, где они по правилам языка недопустимы. Например, нельзя отрывать единицы измерения от числа (10 мл), обозначение года (54 до н. э.), инициалы от фамилии, разрывать устойчивые сокращения (т. д.) и др. Чтобы браузер не добавлял переносы в месте пробела, его следует заменить на неразрывный пробел &nbsp; (пример 5).

Пример 5. Использование &nbsp;

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Переносы</title>
  <style>
   .word { 
    width: 160px; 
    background: #f0f0f0;
    border: 1px solid #333;
    padding: 10px;
    font-size: 18px;
   }
  </style>
 </head>
 <body>
  <p>Озеро по координатам
   70°&nbsp;58′&nbsp;19″&nbsp;с.&nbsp;ш. 
   97°&nbsp;24′&nbsp;5″&nbsp;в.&nbsp;д. 
   расположено в Таймырском Долгано-Ненецком 
   районе Красноярского края России.</p>
 </body>
</html>

В данном примере для корректного написания координат используется &nbsp;, который не позволяет переносить текст.

текст

CSS по теме

  • hyphens
  • word-break

Статьи по теме

  • Переносы слов

Перенос строки в HTML и CSS с помощью тегов: быстрая инструкция

Перенос строки в HTML является довольно простой операцией, но многие молодые верстальщики по незнанию считают это проблемой. При этом перенос строки или просто слов возможно осуществить силами HTML или CSS — в зависимости от ситуации нужно применять тот или иной подход.

 

Перенос строки силами HTML

Самый примитивный способ, как осуществить перенос на новую строку, — это использовать чередование тегов <p> или <div>.

Оба эти тега работают примерно по одинаковому принципу, то есть любой контент, помещенный внутри этих тегов, будет начинаться с новой строки.

Тег <div> — это более широкий тег, поэтому использовать его только для переноса строк — это дурной тон, но вариант такой есть.

Тег <p> — это абзац. Все мы знаем еще со времен школьной скамьи, что абзац всегда начинается с новой строки. Поэтому именно <p> позволяет красиво разбивать текст на абзацы и осуществлять перенос строки в HTML. Тег <р> — это парный тег, поэтому не нужно забывать «закрывать» абзац тегом </р>.

Если вы хотите на своем сайте публиковать стихотворения, а там, как мы знаем, нужно применять переносы строк, чтобы стих выглядел красиво, то в HTML есть специальный для этого тег <pre>, который также является парным и закрывается тегом </pre>. Его преимущество в том, что все, что вы поместите внутри тега, на вашем сайте не будет подвергаться изменениям. То есть, если вы разместите внутри тега стихотворение из 4-х столбиков, на вашем сайте оно отразится, как стихотворение из 4-х столбиков.

Но что делать, если нужен перенос единственной строки в HTML или необходимо осуществить перенос единственного слова на новую строку и т. д. В этих случаях применять какой-либо из описанных выше тегов будет нецелесообразно. Когда возникнет такая потребность, нужно применить тег <br>. Данный тег является одиночным, и его можно использовать сколько угодно. Можно даже применять его после каждой буквы одного слова, чтобы написать слово вертикально.

Одно важное замечание: все теги, описанные выше, обязательно применяются только внутри тега <body>.

 

Перенос строки или слов в HTML при помощи CSS

Допустим, у нас есть некий HTML-код:

<body>

<p>В<br>е<br>р<br>т<br>и<br>к<br>а<br>л<br>ь<br>н<br>о</p>

</body>

 

Внутри такого кода есть некий текст, который вы хотите уместить в рамках одного блока, или вам просто нужно осуществить неоднократный перенос строк в HTML. Тег <br> решит проблему — это однозначно. Но с эстетической стороны большое обилие тегов <br> смотрится не очень красиво.

Тут на помощь придут теги CSS, которые могут осуществить перенос строк в HTML. Вот несколько из этих свойств:

  • overflow-wrap со значениями: break-word

  • word-wrap со значениями: break-word

  • word-break со значениями: keep-all, break-all

  • line-break со значениями: loose, normal, strict

  • hyphens со значениями: none, auto

Все эти свойства будут осуществлять автоматический перенос строк и слов в рамках блока, к которому они применяются. Если нужно в определенном месте перенести слово, то можно воспользоваться «ручным способом» — для этого можно использовать сочетание символов «&shy;». Запуская бесплатные игровые атоматы на freeslots.com.ua при помощи мобильных гаджетов, игроки смогут получать удовольствие от процессом игры в казино и зарабатывать настоящие деньги и срывать джекпоты. Достаточно зарегистрироваться в интернет казино и провести внесение средств на депозитный счет, чтобы можно было играть на слотах на деньги. При применении этого символа слово перенесется по всем правилам русского языка — с дефисом.

 

Заключение

Как правило, если нужен единичный перенос строки в HTML, то проще всего воспользоваться тегом <br>, именно он является самым распространенным и эффективным методом. 

Свойства CSS в основном применяются, когда нужно оформлять перенос строк в рамках каких-либо ограниченных блоков на странице.

html — Как сделать разрыв строки из css без использования ?

спросил

Изменено 3 месяца назад

Просмотрено 1,4 млн раз

Как добиться такого же результата без
?

 

привет
Как дела

вывод:

привет
Как вы
 
  • html
  • css
  • разрывы строк

Вы можете использовать пробел : pre; , чтобы элементы действовали как

  , что сохраняет новые строки.  Пример: 

 п {
  пробел: предварительно;
} 
 

привет Как дела?

Примечание для IE: это работает только в IE8+.

4

Невозможно с одинаковой структурой HTML, у вас должно быть что-то, чтобы различать Привет и Как дела .

Я предлагаю использовать span s, которые вы затем будете отображать в виде блоков (точно так же, как

на самом деле).

 п пролет {
  дисплей: блок;
} 
 

приветКак дела

8

Используйте


как обычно, но скройте его с помощью display: none , когда он вам не нужен.

Я ожидаю, что большинство людей, которые найдут этот вопрос, захотят использовать css / адаптивный дизайн, чтобы решить, появляется ли разрыв строки в определенном месте. (и не имейте ничего личного против
)

Хотя это и не очевидно сразу, вы можете применить display:none к тегу
, чтобы скрыть его, что позволяет использовать медиа-запросы в тандеме с семантическими тегами BR.

 <дел>
  Быстрая коричневая лиса
перепрыгивает через ленивую собаку
 @экран мультимедиа и (минимальная ширина: 20em) {
  бр {
    дисплей: нет; /* скрываем тег BR для более широких экранов (т.е. отключаем перенос строки) */
  }
}
 

Это полезно в адаптивном дизайне, где вам нужно разбить текст на две строки с точным разрывом.

пример jsfiddle

7

Существует несколько вариантов определения обработки пробелов и разрывов строк. Если можно поместить содержимое, например.

тег довольно легко получить все, что угодно.

Для сохранения разрывов строк, но не пробелов, используйте до строки (не до ), например: