Тег <plaintext> выводил всё, что идёт после него, как простой текст: теги внутри не работали, а были видны на экране. Закрывающий тег </plaintext> браузер не замечает, поэтому действие тега длится до конца страницы. Атрибутов у тега нет. Он был в ранних версиях HTML, HTML 3.2 уже называл его устаревшим, а HTML 4.0 убрал совсем. Сегодня стандарт HTML запрещает его, но требует от браузеров обращаться с ним как с pre.
<p>До</p>
<plaintext>Слово <b>жирное</b>
В этой статье
Что делал тег plaintext и чем он похож на pre
По виду plaintext не отличить от pre: блок с моноширинным шрифтом 13px, пробелы и переводы строк сохраняются, сверху отступ 13px. Разница в том, что внутри pre теги работают, а внутри plaintext нет.
Пример: plaintext и pre с одной и той же записью
Кнопки выбирают тег, запись показана над рамкой. Под рамкой записаны показ, шрифт, число дочерних тегов и видимый текст.
У plaintext дочерних тегов нет, а b и a остались буквами записи. У pre те же теги стали жирным словом и ссылкой.
Закрывающий тег plaintext и всё, что идёт после тега
Закрывающий тег </plaintext> ничего не закрывает. Браузер показывает его как обычный текст и продолжает читать страницу как текст. Так же выглядят </body> и </html>: они становятся видимыми строками в конце страницы.
Пример: что случается после plaintext
Кнопки выбирают запись, она показана над рамкой. Под рамкой записаны число абзацев, признак закрывающего тега в тексте и текст тега.
Абзаца p после тега нет ни с закрывающим тегом, ни без него: запись <p>После</p> остаётся текстом внутри plaintext.
Где писать plaintext: после абзаца, в p и в head
Браузер принимает plaintext после абзаца и в начале body. Внутри p он сначала закрывает абзац, и тег оказывается прямо в body. В head тег переносится в body и забирает с собой записи </head> и <body> как текст.
Пример: куда браузер принимает plaintext
Кнопки выбирают положение, запись показана над рамкой. Под рамкой записаны родитель тега, число абзацев и признак закрывающего head или body в тексте.
Родитель всегда BODY. В варианте с head абзаца нет, а закрывающий head виден как текст.
Чем заменить тег plaintext: pre и text/plain
Вместо plaintext берут pre с вложенным code. Знаки <, > и & внутри пишут сущностями <, > и &. У plaintext сущности не работают: запись <b> так и остаётся записью.
<pre><code><b>жирное</b></code></pre>
Если нужна целая страница простого текста, её отдают с типом text/plain. Браузер покажет файл буквами и ничего не станет разбирать как теги. Это то, что советует стандарт.
Пример: plaintext и pre с экранированием
Кнопки выбирают способ, запись показана над рамкой. Под рамкой записаны видимый текст, число тегов b и признак знаков тега в тексте.
Только pre с сущностями показывает запись тега буквами и не ломает страницу. Без экранирования pre делает слово жирным, а текста с тегом нет. Проверка в Nu Html Checker для <plaintext> сообщает: The “plaintext” element is obsolete. Use the “text/plain” MIME type instead.