Как сделать span или div как pre с помощью CSS

Пройдите тест, узнайте какой профессии подходите и получите бесплатную карьерную консультацию
В конце подарим скидку до 55% на обучение
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для того чтобы <span> приобрел вид <pre>, ему следует задать свойство white-space: pre;, благодаря которому учитываются пробелы и переносы строк. Дополнительно добавьте display: block;, что позволяет выведении элемента на новую строку, как это делается для <pre>. Вам пригодятся следующие стили:

CSS
Скопировать код
span.fake-pre { white-space: pre; display: block; font-family: monospace; }

Привязать класс к элементу <span> вы сможете таким образом:

HTML
Скопировать код
<span class="fake-pre">Отформатированный контент.</span>

Такие стили дают возможность скопировать формат элемента <pre> на тег <span>, при этом сохраняя семантику HTML.

Разбираемся в преобразовании 'pre'

Для эмуляции поведения <pre> полезно знать его стандартные стили, описанные в W3C CSS2.1 Default Style Sheet и CSS2.2 Working Draft.

Особенности элемента <pre>

Свойство white-space со значением pre позволяет тегу <pre> сохранять пробелы и переносы строк.

Использование моноширинного шрифта

Свойство font-family: monospace; обеспечивает одинаковую ширину символов, что достаточно характерно для <pre> и помогает сохранить выравнивание.

Особенности работы с блочными элементами

Свойство display: block; обеспечивает тому же <span> поведение, аналогичное <pre>, перенося его на новую строчку и реализуя форматирование текста как у блочного элемента.

Визуализация

Теперь исследуем, как изменяется вид <span> при стилизации под <pre> с помощью CSS:

До применения CSS:

Markdown
Скопировать код
<span>🦎</span> Спокойствие и неприметность.

После применения CSS:

CSS
Скопировать код
span {
    display: block; /* Осветительные приборы внимают персоне */
    white-space: pre; /* Каждый пробел имеет значение, уважаем пространство */
    font-family: monospace; /* Равномерность во благо порядка и читаемости */
}

Визуальное восприятие после применения CSS:

Markdown
Скопировать код
<pre>🦎</pre> Яркий экстерьер и харизма.

Благодаря таким изменениям в стилях, незаметный хамелеон преобразуется в яркое и привлекательное зрелище, что является иллюстрацией превращения <span> в <pre>.

Дополнительные настройки и улучшения

Управление проблемами переполнения контента

Если содержимое вашего block-level элемента выходит за пределы блока, используйте свойство overflow: auto; или overflow: scroll;:

CSS
Скопировать код
.fake-pre { overflow: auto; /* Фиксируем избыток контента */ }

Добавление объёмности с помощью отступов и границ

Создание объёма и завершённости стилей с помощью добавления отступов padding и границ border поможет приблизить вид <span> к оформлению <pre>:

CSS
Скопировать код
.fake-pre {
    border: 1px solid #ccc; /* Подчёркиваем контуры */
    padding: 10px; /* Больше пространства обеспечивает больше воздуха */
}

Управление двунаправленным текстом

Для контента с двунаправленным текстом используйте unicode-bidi: embed;, так как <pre> этим свойством иногда пользуется по умолчанию:

CSS
Скопировать код
.fake-pre { unicode-bidi: embed; /* Гармонизация разных направлений текста */ }

Полезные материалы

  1. white-space | CSS-Tricks — глубокий разбор свойства white-space в CSS.
  2. white-space – CSS: Cascading Style Sheets | MDN — детализация white-space и его роли в веб-дизайне.
  3. font-family – CSS: Cascading Style Sheets | MDN — подробное описание свойства font-family, упрощающее использование моноширинных шрифтов.
  4. display – CSS: Cascading Style Sheets | MDN — разъяснение свойства display и его влияния на компоновку, особенно при использовании inline-block.
  5. CSS Overflow — наглядные примеры и советы по управлению переполнением контента в CSS.
  6. border – CSS: Cascading Style Sheets | MDN — пошаговое описание свойства border и его значения в оформлении элементов, аналогичных pre.