Кратко
СкопированоТег <pre> (от английского preformatted text) нужен для отображения предварительно отформатированного текста, если необходимо сохранить все пробелы и переносы в HTML.
Пример
Скопировано
<pre aria-label="Изображение кота, собранное из текстовых символов."> ../\„„./\. .(='•'= ) . .(") „. ("). . \,\„„/,/ . │„„. „│ . /„/„ \„\ .(„)''l l''(„) . .. ((... . . . )).. . . .((..</pre>
<pre aria-label="Изображение кота, собранное из текстовых символов.">
../\„„./\.
.(='•'= ) .
.(") „. (").
. \,\„„/,/
. │„„. „│
. /„/„ \„\
.(„)''l l''(„)
. .. ((...
. . . ))..
. . .((..
</pre>
Как понять
СкопированоВ HTML-коде браузер схлопывает все пробелы в один и игнорирует переносы строк.
Если поместить нашего котика в обычный <div>, мы увидим его таким:
../\„„./\. .(='•'= ) . .(") „. ("). . \,\„„/,/ . │„„. „│ . /„/„ \„\ .(„)''l l''(„) . .. ((... . . . )).. . . .((..
Чтобы сохранить изначальное форматирование как в HTML, можно воспользоваться тегом <pre>.
Атрибуты
СкопированоК тегу <pre> можно применить все глобальные атрибуты.
Подсказки
Скопировано💡 По умолчанию для отображения текста в теге <pre> браузеры используют моноширинные системные шрифты под общим названием monospace.
💡 Для вывода кода нужно дополнительно обернуть содержимое тега <pre> в тег <code>, чтобы подчеркнуть, что внутри именно код, а не схематичный котик или стихотворение.
💡 При демонстрации внутри тега <pre> HTML-кода могут возникнуть проблемы с отображением тегов в угловых скобках — браузер посчитает их настоящими тегами. Чтобы решить проблему, воспользуйтесь мнемоническими подстановками:
<(less than — знак «меньше») для левой угловой скобки;>(greater than — знак «больше») для правой угловой скобки.
<pre><code> <div>Какой-то текст</div></code></pre>
<pre><code>
<div>Какой-то текст</div>
</code></pre>
💡 Схлопывание пробелов и переносов строк вне тега <pre> также можно избежать с помощью CSS, а именно свойства white.
💡 Слишком длинные строчки могут выходить за пределы тега <pre>, решить проблему поможет CSS, а именно добавление прокрутки – overflow, или переноса строк – white.