Как вы уже знаете, браузер игнорирует множественные пробелы и переносы строк в HTML-коде. Изменить это поведение можно с помощью тега <pre>.
Однако, с помощью CSS управлять пробелами и переносами можно более гибко. За это отвечает свойство white-space, значения которого:
nowrap — схлопывает лишние пробелы и отображает весь текст одной строкой без переносов;
pre — сохраняет пробелы и переносы как в исходном коде аналогично тегу <pre>;
pre-wrap — работает как значение pre, но добавляет автоматические переносы, если текст не помещается в контейнер;
normal — режим по умолчанию: лишние пробелы и переносы строк схлопываются, текст переносится, пробелы в конце строк удаляются.
На самом деле у свойства по спецификации может быть ещё два значения:
break-spaces — поведение идентично pre-wrap, но при схлопывании пробелов остаются нетронутыми зарезервированные пробелы, такие как пробелы в конце строки;
pre-line — как normal, лишние пробелы схлопываются, но строки переносятся на символе переноса строки, на <br> и по мере заполнения строки.
index.html
style.css
HTML
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Дневник начинающего верстальщика</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<p class="page-title">Блог</p>
<nav class="blog-navigation">
<a href="index.html">На главную</a>
</nav>
</header>
<main>
<article>
<h1>День шестой. Как я ничего не понял, продолжение</h1>
<p class="nowrap">Сегодня зашёл на несколько сайтов посмотреть, как они свёрстаны. Увидел какие-то цитаты и незнакомые теги <code><cite></code> и <code><blockquote></code>.</p>
<p class="like-pre">Не понял,
чем они отличаются.
Закрыл браузер.
Разберусь завтра.</p>
<p>А вот что я увидел.</p>
<pre><code><blockquote>
<p>Ум ценится дорого, когда дешевеет сила.</p>
<cite>Джейсон Стэтхэм</cite>
</blockquote></code></pre>
</article>
<aside class="partnership">
Тут могла быть ваша реклама
</aside>
</main>
<footer>
Подвал сайта
</footer>
</body>
</html>