Тег listing в HTML: что делал и чем заменить

Тег <listing> выводил листинг программы: текст моноширинным шрифтом уменьшенного размера, с сохранением строк. Тег парный, закрывающий тег </listing> нужен. Он был в ранних версиях HTML, HTML 3.2 уже называл его устаревшим, а HTML 4.0 убрал совсем. Сегодня стандарт запрещает тег, но требует от браузеров обращаться с ним как с <pre>.

HTML
<listing>
a = 1
b = 2
</listing>

Что делал тег listing и чем он отличается от pre

Задумывался listing для вставки кода в страницу. Своего вида у него в браузере нет: он выглядит и ведёт себя как pre. Класс тега тот же, HTMLPreElement, и стили те же.

Пример: listing и pre рядом

Результат

Кнопки выбирают текст. В рамке два блока с одним и тем же текстом: сначала listing, потом pre. Под рамкой записаны класс, показ, шрифт, пробелы, отступы и высота обоих.

Показ block, шрифт monospace размером 13px, пробелы pre, отступы сверху и снизу по 13px. Высота у обоих тегов одинаковая.

Пробелы и переносы строк внутри listing

Как и в pre, пробелы и переносы строк внутри listing сохраняются, а длинная строка не переносится и выходит за край блока. Чтобы появилась прокрутка, нужен overflow: auto в CSS. Одно исключение: перевод строки сразу после открывающего тега браузер отбрасывает, поэтому текст можно начинать с новой строки без пустой строки сверху.

Пример: пробелы, переносы и длинная строка

Результат

Кнопки выбирают текст, запись показана над рамкой. Под рамкой записаны число строк, начало текста, сохранён ли отступ, высота и наличие горизонтальной прокрутки.

В первом варианте текст начинается со слова «Первая», пустой строки перед ним нет. Во втором отступ перед b() остался. В третьем строка не переносится, а прокрутка появилась из-за overflow: auto в стиле демо.

Теги внутри listing и listing внутри абзаца

Теги внутри listing работают: b делает слово жирным, a даёт ссылку. Знак меньше в тексте нужно писать сущностью &lt;. Если записать <span> прямо в тексте, браузер сочтёт его тегом, и слово span на экране не появится. А listing внутри p закрывает абзац, как любой блочный тег.

Пример: что внутри listing и вокруг него

Результат

Кнопки выбирают разметку, запись показана над рамкой. Под рамкой записаны число дочерних тегов, видимый текст и для абзаца родитель тега.

Три тега остаются тегами, сущности превращаются в знаки, а запись span в тексте не видна. Абзац заканчивается перед listing.

Чем заменить тег listing: pre и code

Для показа кода берут pre с вложенным code: pre хранит строки и отступы, а code сообщает, что внутри код. Один code годится для короткой записи в абзаце: он строчный и переносы строк не сохраняет. Размер и название шрифта задают в CSS через font-size и font-family.

HTML
<pre><code>a = 1
b = 2</code></pre>

Пример: pre и code вместо listing

Результат

Кнопки выбирают тег, запись показана над рамкой. Под рамкой записаны класс тега, показ, пробелы, шрифт и сохранены ли переносы строк.

Обычный pre и pre с code выглядят как listing, а один code склеивает две строки в одну.

Категория
Поделиться в социальных сетях
Основные HTML-теги
Семантические теги HTML
Заголовки и абзацы
Теги для форматирования текста
Тег гиперссылки HTML
HTML-теги таблицы
Списки в HTML
Теги для форм
Мультимедиа и изображения
Интерактивные и служебные теги
Устаревшие HTML-теги

Отправить комментарий

0 Комментарии

Отправить комментарий (0)

#buttons=(Хорошо) #days=(20)

Мы используем файлы cookie для улучшения работы сайта. Подробнее
Хорошо
×