Устаревшие теги HTML
Устаревшие элементы допустимы, но не рекомендуются и заменяются новыми. Список устаревших тегов HTML с современными альтернативами.
В этой главе объясняется, какие теги HTML считаются устаревшими, почему они вышли из употребления и что использовать вместо них. Если вы работаете со старой разметкой или скопировали фрагмент из устаревшего руководства — эта глава поможет найти современную замену.
Почему теги HTML устаревают
У большинства устаревших тегов одна общая причина: они смешивают представление (то, как выглядит контент) со структурой (то, что означает контент). В ранних версиях HTML были теги вроде <font>, <center> и <big>, которые управляли цветами, выравниванием и размерами непосредственно в разметке. Такой подход плохо масштабируется: чтобы изменить внешний вид сайта, приходилось редактировать каждую страницу вручную.
Современная веб-разработка следует принципу разделения ответственности: HTML описывает структуру и смысл контента, а CSS отвечает за всё оформление. Это делает страницы удобнее в сопровождении, легче при загрузке и гибче при изменении стилей. Кроме того, это улучшает доступность — программы чтения с экрана и другие вспомогательные технологии опираются на осмысленную, семантическую разметку, а не на визуальные приёмы. Для более полного понимания современного, семантического подхода см. Семантические элементы в HTML5 и введение в HTML5.
Устаревшие и запрещённые теги
Эти два понятия часто путают, но они не одинаковы:
- Устаревший (deprecated) — тег по-прежнему допустим, большинство браузеров его отображают, однако его использование не рекомендуется. В будущем он может быть удалён.
- Запрещённый (obsolete) — спецификация HTML5 указывает, что этот тег не должен использоваться. Браузеры могут продолжать его отображать только для обратной совместимости, но писать новую разметку с ним нельзя.
Не полагайтесь на то, что устаревший тег «просто работает». Поддержка браузером может быть отключена в любой момент, а такие теги нередко ведут себя непоследовательно в разных браузерах. Всегда используйте современную замену.
До и после: замена устаревшего тега
Классический пример — тег <font>, который задавал цвет, размер и гарнитуру шрифта непосредственно в разметке. Ниже показан старый способ рядом с его CSS-эквивалентом.
Устаревший подход — представление в HTML:
<font color="red" size="5" face="Arial">Important notice</font>Современный подход — структура плюс CSS:
<p class="notice">Important notice</p>.notice {
color: red;
font-size: 1.5rem;
font-family: Arial, sans-serif;
}Во втором варианте то, чем является текст (абзац-уведомление), отделено от того, как он выглядит. Вы можете переоформить каждый элемент .notice на сайте, отредактировав одно CSS-правило. Подробнее — на страницах CSS font и text-align.
Замечания о доступности
Некоторые устаревшие теги не рекомендуются именно потому, что они создают барьеры для пользователей:
<blink>и<marquee>создают мигающий или движущийся текст. Движение и мигание отвлекают многих читателей, могут сделать текст нечитаемым для людей с когнитивными особенностями или нарушениями внимания, а быстрое мигание способно даже вызвать припадок у пользователей с фотосенситивной эпилепсией. Если анимация действительно необходима, используйте CSS animation — и уважайте пользовательскую настройкуprefers-reduced-motion, чтобы её можно было отключить.<acronym>был заменён тегом<abbr>, потому что различие между «акронимом» и «аббревиатурой» было запутанным и непоследовательным. Единый элемент<abbr>охватывает оба случая, а вспомогательные технологии могут зачитывать пользователям расширенный текст из атрибутаtitle.
Список устаревших тегов HTML
| Тег | Описание | Альтернатива |
|---|---|---|
<acronym> | Указывает браузеру, что содержимое является акронимом или аббревиатурой. | <abbr> |
<applet> | Определяет встроенный Java-апплет. | <object> |
<basefont> | Задаёт размер и цвет шрифта по умолчанию. | Стили CSS |
<big> | Увеличивает размер шрифта на одну условную единицу. | Стили CSS |
<blink> | Создаёт медленно мигающий текст. | animation |
<center> | Выравнивает содержимое по центру. | text-align |
<dir> | Определяет список заголовков каталога. | <ul> |
<font> | Задаёт характеристики шрифта. | Стили CSS |
<frame> | Определяет отдельное окно (фрейм), в которое можно загрузить другую веб-страницу. | <iframe> |
<frameset> | Определяет структуру набора фреймов. | <iframe> |
<isindex> | Отображает строки поиска в текущем документе. | <form> |
<noframes> | Содержит альтернативный текст для браузеров, не поддерживающих фреймы. | Полностью устарел вместе с <frameset>/<frame>; прямой замены нет. |
<marquee> | Создаёт прокручиваемый текст или изображение. | animation |
<spacer> | Вставляет пустое пространство (горизонтальное или вертикальное) для вёрстки. | Стили CSS (margin/padding) |
<menu> | Определяет список команд. | <ul> |
<plaintext> | Указывает браузеру отображать содержимое как обычный текст без форматирования. | <pre> |
<strike> | Определяет зачёркнутый текст. | <del> |
<tt> | Определяет текст, отображаемый моноширинным шрифтом. | <code> |
Практика
Следующие шаги
Теперь, зная, чего следует избегать, изучите современные, семантически выверенные альтернативы в разделах HTML Elements и Семантические элементы в HTML5, а затем перенесите всё визуальное оформление в CSS.