Сделать перенос строки в желаемом месте текста можно несколькими путями. Рассмотрим несколько вариантов: через элемент <br>, элемент <pre> и свойство white-space.
Использование <br>
Элемент <br> делает перенос строки в том месте, где он располагается. Например, в этом предложении каждое слово будет отображаться на отдельной строке текста, потому что между словами вставлен <br>.
<p>Первому<br>игроку<br>приготовиться</p>
В примере 1 элемент <br> применяется для вывода стиха, где переносы строк выполняются определённым, задуманным автором образом.
Пример 1. Использование <br>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Перенос текста</title>
</head>
<body>
<p>Не знаю, о чём я тоскую.<br>
Покоя душе моей нет.<br>
Забыть ни на миг не могу я<br>
Преданье далёких лет.</p>
<p>Генрих Гейне, Лорелея. Перевод Самуила Маршака</p>
</body>
</html>
Использование <pre>
Элемент <pre> отображает текст «как есть» со всеми его пробелами и переносами. Обычно это применяется для вывода кода программы, где отступы играют важное значение (пример 2).
Пример 2. Использование <pre>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Перенос текста</title>
<style>
pre {
padding: 1em; /* Поля вокруг текста */
border: 1px solid #333; /* Параметры рамки */
font-size: 1rem; /* Размер шрифта */
}
</style>
</head>
<body>
<pre>if a % 2 == 0:
print('Чётное число')
else:
print('Нечётное число')</pre>
</body>
</html>
Текст внутри <pre> выводится моноширинным шрифтом, иными словами, каждая буква имеет одинаковую ширину. Это позволяет располагать символы друг под другом и с помощью пробелов легко выравнивать строки.
Переносы текста, как и пробелы, внутри <pre> отображаются так же, как и в коде HTML, поэтому дополнительно вставлять какие-то элементы или ещё как-то обозначать перенос не требуется.
Использование свойства white-space
У свойства white-space есть несколько значений, дающих разные возможности, но нас интересует значение pre-line, которое учитывает только переносы текста и игнорирует идущие подряд пробелы (пример 3). Получается, что от <pre> взяли только переносы строк без учёта пробелов. Сам шрифт тоже не меняется на моноширинный.
Пример 3. Использование white-space
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Перенос текста</title>
<style>
.pre {
white-space: pre-line; /* Только переносы строк */
}
</style>
</head>
<body>
<div class="pre">В далёкой стране жил умный червячок по имени Оскар.
Он был не обычным червячком, потому что Оскар любил
смотреть на звёзды и задавать вопросы,
на которые никто из его друзей не мог ответить.</div>
</body>
</html>
Переносы текста с участием стилевого свойства white-space дают нам дополнительные возможности, учитывающие ширину экрана. В частности, для широкого экрана переносы можно убрать, а для маленького экрана, наоборот, установить. В примере 4 с помощью медиа-запроса устанавливаем, что при уменьшении ширины окна добавятся переносы строк.
Пример 4. Перенос строк в зависимости от ширины
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Перенос текста</title>
<style>
/* Стиль для ширины меньше 600 пикселей */
@media screen and (max-width: 600px) {
.pre {
white-space: pre-line; /* Переносы строк */
}
}
</style>
</head>
<body>
<div class="pre">В далёкой стране жил умный червячок по имени Оскар.
Он был не обычным червячком, потому что Оскар любил
смотреть на звёзды и задавать вопросы,
на которые никто из его друзей не мог ответить.</div>
</body>
</html>
Здесь текст исходно выводится в одну строку и переносы добавляются браузером автоматически. При уменьшении ширины окна до 600 пикселей переносы возникают там, где мы их сделали в коде HTML.