Spec-Zone.ru › HTML

<pre> элемент предварительно отформатированного текста HTML

Базовый уровень Широко доступен

Эта функция хорошо зарекомендовала себя и работает во многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.

  • Подробнее
  • Посмотреть полную таблицу совместимости
  • Отправить отзыв
>

Элемент <pre> HTML представляет предварительно отформатированный текст, который должен отображаться в точности так, как он записан в HTML-файле. Обычно текст отображается шрифтом с одинаковой шириной символов, или моноширинным.

Пробелы внутри этого элемента отображаются так, как записаны, за одним исключением. Если сразу после открывающего тега <pre> указаны один или несколько символов перевода строки, первый символ перевода строки удаляется. Это преобразование выполняет HTML-парсер; оно не применяется при использовании XHTML.

Текстовое содержимое элементов <pre> разбирается как HTML, поэтому, если вы хотите, чтобы текстовое содержимое оставалось обычным текстом, некоторые синтаксические символы, например <, может потребоваться экранировать с помощью соответствующих ссылок на символы. Подробнее см. в разделе Экранирование неоднозначных символов.

Элементы <pre> обычно содержат элементы <code>, <samp> и <kbd>, которые обозначают программный код, вывод программы и пользовательский ввод соответственно.

По умолчанию <pre> является блочным элементом, то есть значение его свойства display по умолчанию — block.

Попробуйте

<pre>
             S
             A
            LUT
             M
            O N
            D  E
            DONT
          JE SUIS
          LA  LAN
          G U E  É
         L O Q U E N
        TE      QUESA
       B  O  U  C  H  E
      O        P A R I S
     T I R E   ET   TIRERA
    T O U             JOURS
   AUX                  A  L
 LEM                      ANDS   - Apollinaire
</pre>
pre {
  font-size: 0.7rem;
  margin: 0;
}

Атрибуты

Этот элемент поддерживает только глобальные атрибуты.

width

Содержит предпочтительное количество символов в строке. Хотя этот атрибут всё ещё реализован, он не оказывает визуального эффекта; чтобы добиться такого эффекта, используйте вместо него CSS-свойство width.

wrap

Это подсказка, указывающая, как должно происходить переполнение. В современных браузерах эта подсказка игнорируется и не оказывает визуального эффекта; чтобы добиться такого эффекта, используйте вместо неё CSS-свойство white-space.

Доступность

Важно предоставлять альтернативное описание для любых изображений или диаграмм, созданных с помощью предварительно отформатированного текста. Альтернативное описание должно чётко и кратко описывать содержимое изображения или диаграммы.

Люди с нарушениями зрения, использующие вспомогательные технологии, например программы чтения с экрана, могут не понимать, что обозначают символы предварительно отформатированного текста, когда они зачитываются последовательно.

Сочетание элементов <figure> и <figcaption>, дополненное атрибутами role ARIA и aria-label у элемента pre, позволяет представить предварительно отформатированный ASCII-арт ASCII как изображение с альтернативным текстом, а figcaption будет служить подписью к изображению.

Пример

<figure>
  <pre role="img" aria-label="ASCII COW">
      ___________________________
  &lt; I'm an expert in my field. &gt;
      ---------------------------
          \   ^__^
           \  (oo)\_______
              (__)\       )\/\
                  ||----w |
                  ||     ||
  </pre>
  <figcaption id="cow-caption">
    A cow saying, "I'm an expert in my field." The cow is illustrated using
    preformatted text characters.
  </figcaption>
</figure>
  • Пояснения к рекомендациям MDN по WCAG 1.1
  • H86: предоставление текстовых альтернатив для ASCII-арта, смайликов и л33тспика | Рекомендации W3C по WCAG 2.0

Примеры

>

Базовый пример

HTML

<p>Using CSS to change the font color is easy.</p>
<pre><code>
body {
  color: red;
}
</code></pre>

Результат

Экранирование неоднозначных символов

Предположим, вы хотите показать HTML-код внутри элемента <pre>. Последовательности символов, определяющие допустимые HTML-теги (начинающиеся с < и заканчивающиеся на >), отображаться не будут. Чтобы показать символы тегов как текст, необходимо экранировать как минимум символ < с помощью ссылки на соответствующий символ, чтобы эти последовательности больше не определяли допустимые теги.

На самом деле HTML-парсер рассматривает большинство символов как обычный текст, кроме случаев, когда они находятся в определённых контекстах. Например, < code допустимо, а <code будет разобрано неправильно; &am; допустимо, а &amp; — нет. Тем не менее рекомендуется экранировать все неоднозначные символы, чтобы избежать путаницы, особенно если вы программно генерируете HTML и вставляете содержимое <pre>. В таком случае можно руководствоваться следующим правилом экранирования символов:

  1. Сначала запишите содержимое так, как вы хотите видеть его в HTML-документе.
  2. Замените все амперсанды (&) на &amp;. Выполните этот шаг первым, чтобы новые символы &, появившиеся на следующем шаге, не были экранированы.
  3. Замените все символы < на &lt;.

В результате содержимое должно отображаться так, как задумано. Заменять другие символы синтаксиса HTML необязательно (например, > на &gt;, " на &quot; и ' на &apos;), но это не повредит.

HTML

<pre><code>
let i = 5;

if (i &lt; 10 &amp;&amp; i &gt; 0)
  return &quot;Single Digit Number&quot;
</code></pre>

Результат

Техническая сводка

Категории содержимого Потоковое содержимое, ощутимое содержимое.
Допустимое содержимое Фразовое содержимое.
Пропуск тегов Не допускается: открывающий и закрывающий теги обязательны.
Допустимые родители Любой элемент, допускающий потоковое содержимое.
Неявная роль ARIA generic
Допустимые роли ARIA Любые
Интерфейс DOM HTMLPreElement

Спецификации

Спецификация
HTML>
# the-pre-element>

Совместимость с браузерами

Настольные Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android WebView на iOS
pre 1 12 1 15 ≤4 18 4 14 ≤3.2 1.0 4.4 ≤3.2
width
1Указание атрибута width не влияет на макет.
12Указание атрибута width не влияет на макет.
1Начиная с Firefox 29, указание атрибута width не влияет на макет.
15Указание атрибута width не влияет на макет.
3Указание атрибута width не влияет на макет.
18Указание атрибута width не влияет на макет.
4Начиная с Firefox для Android 29, указание атрибута width не влияет на макет.
14Указание атрибута width не влияет на макет.
2Указание атрибута width не влияет на макет.
1.0Указание атрибута width не влияет на макет.
4.4Указание атрибута width не влияет на макет.
2Указание атрибута width не влияет на макет.

См. также

  • CSS: white-space, word-break
  • Ссылка на символ
  • Связанные элементы: <code>, <samp>, <kbd>

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/pre

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API