HTML тег <plaintext>
Содержимое тега <plaintext> отображается как обычный текст без форматирования. Описание тега и примеры использования.
Тег <plaintext> указывает браузеру отображать всё, что следует за ним, как обычный текст без какого-либо HTML-форматирования. Когда парсер встречает этот тег, он переключается в режим необработанного текста и трактует всё последующее содержимое документа как простой текст, игнорируя все теги, которые идут за ним.
Устаревший — никогда не используйте <plaintext>. Он устарел ещё в HTML2 и не является частью ни одного современного стандарта HTML. Браузеры по-прежнему отрисовывают его только из соображений обратной совместимости, а его поведение необратимо разрушительно (см. ниже). Для отображения буквального текста используйте вместо него <pre> и/или <code>.
Почему <plaintext> необратимо опасен
Главная особенность <plaintext> состоит в том, что у него нет закрывающего тега. Браузер не воспринимает никакой </plaintext>. Как только парсер входит в <plaintext>, он поглощает остаток документа как буквальный текст — включая всю разметку, следующую за тегом, вплоть до конца файла:
- Всё, что идёт после
<plaintext>, отображается как необработанный текст, поэтому весь реальный HTML, написанный после него (абзацы, скрипты, стили), выводится в виде исходного кода, а не отрисовывается. - Закрывающие теги
</body>и</html>также поглощаются как текст, поэтому документ никогда не закрывается корректно. - Отключить его невозможно. Не существует способа выйти из режима простого текста после его активации, поэтому один тег
<plaintext>способен сломать всю страницу.
По этим причинам <plaintext> следует воспринимать как артефакт, который можно встретить в старом коде, но не как инструмент для использования.
Если бы <plaintext> был первым элементом на странице, весь ответ документа обрабатывался бы как простой текст. В такой ситуации правильным решением является передача файла с MIME-типом text/plain MIME-type, а не использование этого тега.
Что использовать вместо него
Чтобы безопасно отображать буквальный текст или код, сочетайте <pre> (который сохраняет пробелы и переносы строк) с <code> (который помечает текст как код) и экранируйте символы, имеющие специальное значение в HTML: пишите < вместо <, > вместо > и & вместо &. Экранирование — это то, что заставляет угловые скобки отображаться как текст, а не интерпретироваться как теги.
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
</head>
<body>
<p>The code below is shown as literal text:</p>
<pre><code><h1>Main title of the document</h1>
<p>First paragraph of the text</p>
<h2>Subheading</h2></code></pre>
</body>
</html>В отличие от <plaintext>, тег <pre> имеет правильный закрывающий тег (</pre>), поэтому область буквального текста заканчивается именно там, где нужно, и остальная часть страницы отрисовывается нормально. Также можно применить моноширинный шрифт к любому HTML-элементу с помощью свойства CSS font-family и значения monospace.
Для исторического контекста: тег <xmp> — ещё один устаревший способ отображения буквального текста; как и <plaintext>, его не следует использовать. Ознакомьтесь с полным списком устаревших HTML-тегов, которых следует избегать.
Синтаксис
Тег <plaintext> не является пустым элементом, однако его закрывающий тег запрещён — </plaintext> не существует. HTML-парсер прекращает интерпретировать разметку в момент обнаружения открывающего тега и поглощает остаток документа как простой текст.
Пример HTML-тега <plaintext>:
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
</head>
<body>
<p>The tag content looks like this:</p>
<plaintext>
<h1>Main title of the document</h1>
<p>First paragraph of the text</p>
<h2>Subheading</h2>
</body>
</html>Результат

Атрибуты
Тег <plaintext> поддерживает глобальные атрибуты.