Предопределенные элементы
Предопределённые элементы — в контексте веб-разработки и языка разметки HTML термин, не являющийся официальным стандартом, но используемый для описания набора встроенных (native), заранее заданных тегов и атрибутов, которые браузер интерпретирует по умолчанию. В более широком смысле, под предопределёнными элементами могут пониматься любые заранее заданные компоненты системы, чьё поведение, структура или значение фиксированы на уровне спецификации или протокола, в отличие от пользовательских (кастомных) элементов, определяемых разработчиком.
История и происхождение термина
Понятие «предопределённые элементы» возникло в контексте развития языков разметки и веб-стандартов. Первые версии HTML (HTML 2.0, 1995 год) содержали фиксированный набор тегов, таких как <p>, <h1>, <a>, <img>, которые были жёстко заданы спецификацией. Эти элементы нельзя было переопределить или расширить — браузер обрабатывал их строго определённым образом. С появлением XML (1998 год) и XHTML (2000 год) возникла возможность создавать собственные элементы, что привело к разделению на «стандартные» (предопределённые) и «пользовательские» (кастомные) элементы.
Термин получил новое значение с внедрением технологии Web Components (2010-е годы), где появились Custom Elements — элементы, определяемые разработчиком. В противоположность им, встроенные теги HTML стали называть «предопределёнными» (built-in или predefined elements). В спецификации HTML Living Standard (WHATWG) для обозначения этой категории используется термин «standard elements» или «HTML elements».
Классификация предопределённых элементов
В веб-разработке предопределённые элементы можно разделить на несколько категорий по функциональному назначению:
Структурные элементы
- Блочные элементы — формируют структуру документа и занимают всю доступную ширину:
<div>,<section>,<article>,<nav>,<header>,<footer>,<main>,<aside>,<p>,<h1>–<h6>,<ul>,<ol>,<li>,<table>,<form>. - Строчные элементы — располагаются внутри строки и не переносят текст:
<span>,<a>,<strong>,<em>,<b>,<i>,<u>,<code>,<img>,<input>,<label>,<button>.
Элементы для работы с медиа
<img>— встраивание изображений.<video>— встраивание видео.<audio>— встраивание аудио.<source>— указание альтернативных источников медиа.<track>— субтитры и текстовые дорожки.
Элементы для работы с данными и формами
<form>— контейнер для формы.<input>— поле ввода (с атрибутомtype, определяющим тип:text,number,email,password,checkbox,radio,submitи др.).<textarea>— многострочное текстовое поле.<select>— выпадающий список.<option>— элемент списка.<button>— кнопка.<label>— метка для элемента формы.<fieldset>— группировка элементов формы.<legend>— заголовок группы.
Семантические элементы
<article>— самостоятельная часть контента.<section>— тематическая группа контента.<nav>— навигационный блок.<aside>— дополнительный контент (боковая панель).<header>— вводная часть или шапка.<footer>— завершающая часть или подвал.<main>— основное содержимое страницы.<figure>— иллюстрация с подписью.<figcaption>— подпись к иллюстрации.
Элементы для работы с текстом и разметкой
<p>— абзац.<h1>–<h6>— заголовки уровней.<ul>,<ol>,<li>— списки.<table>,<tr>,<td>,<th>,<thead>,<tbody>,<tfoot>— таблицы.<a>— гиперссылка.<abbr>— аббревиатура.<blockquote>— цитата.<code>— фрагмент кода.<pre>— предварительно форматированный текст.<br>— разрыв строки.<hr>— горизонтальная линия.
Элементы для скриптов и метаданных
<script>— встраивание скрипта.<style>— встраивание стилей.<link>— подключение внешних ресурсов.<meta (организация признана экстремистской, деятельность запрещена в РФ)>— метаданные документа.<title>— заголовок страницы.<base>— базовый URL для относительных ссылок.
Устройство и характеристики
Предопределённые элементы HTML обладают рядом фиксированных свойств, заданных стандартом:
- Тег — имя элемента (например,
div,span,img). Регистр не имеет значения, но по соглашению используется нижний регистр. - Атрибуты — предопределённый набор атрибутов для каждого элемента (например,
hrefдля<a>,srcдля<img>,typeдля<input>). Некоторые атрибуты являются глобальными (id,class,style,data-*). - Модель содержимого — правила, определяющие, какие дочерние элементы могут быть вложены. Например,
<ul>может содержать только<li>, а<p>— только строчные элементы. - Поведение по умолчанию — браузер применяет к элементу стандартные стили и обработку событий (например, клик по
<a>переходит по ссылке, нажатие Enter в<input>отправляет форму).
Важной характеристикой является то, что предопределённые элементы не могут быть переопределены или удалены из спецификации. Браузеры обязаны поддерживать их в соответствии со стандартом.
Применение и значение
Предопределённые элементы являются основой для создания веб-страниц и веб-приложений. Их использование обеспечивает:
- Совместимость — все современные браузеры одинаково интерпретируют стандартные элементы, что гарантирует корректное отображение контента.
- Доступность — предопределённые элементы имеют встроенную семантику, которая используется вспомогательными технологиями (скринридерами) для навигации и озвучивания контента.
- Производительность — браузеры оптимизированы для обработки стандартных элементов, что ускоряет рендеринг страниц.
- SEO — поисковые системы учитывают семантическую структуру документа, построенную на предопределённых элементах, для ранжирования и индексации.
В контексте веб-стандартов предопределённые элементы противопоставляются кастомным элементам (Custom Elements), которые разработчики создают с помощью JavaScript API. Кастомные элементы наследуют поведение от стандартных или определяют его с нуля, но не могут полностью заменить встроенные элементы без потери семантики и доступности.
Примеры использования
- Структура документа:
``html <!DOCTYPE html> <html> <head> <title>Пример</title> </head> <body> <header>Шапка сайта</header> <main> <article> <h1>Заголовок статьи</h1> <p>Текст абзаца.</p> </article> </main> <footer>Подвал</footer> </body> </html> ``
- Форма ввода данных:
``html <form action="/submit" method="post"> <label for="name">Имя:</label> <input type="text" id="name" name="name"> <button type="submit">Отправить</button> </form> ``
- Медиа-контент:
``html <figure> <img src="photo.jpg" alt="Описание изображения"> <figcaption>Подпись к изображению</figcaption> </figure> ``
Критика и ограничения
Несмотря на широкое распространение, у предопределённых элементов есть недостатки:
- Ограниченная гибкость — разработчики не могут изменить поведение стандартного элемента без использования JavaScript (например, нельзя сделать
<div>кликабельным без обработчика событий). - Избыточность — для некоторых задач требуется комбинация нескольких элементов (например, для создания сложной формы нужно использовать
<form>,<input>,<label>,<fieldset>и т.д.). - Отсутствие универсальности — некоторые элементы (например,
<blink>,<marquee>) были удалены из стандарта из-за низкой доступности и плохой производительности, что требует миграции на альтернативные решения.
В последние годы наблюдается тенденция к расширению набора предопределённых элементов (например, добавление <dialog>, <details>, <summary>), что частично решает проблему гибкости.
Интересные факты
- В ранних версиях HTML (до 4.0) существовали элементы, которые впоследствии были признаны устаревшими (deprecated) или удалены:
<center>,<font>,<u>,<s>,<strike>,<big>,<small>(последний был возвращён в HTML5). - Элемент
<img>является одним из немногих, который не имеет закрывающего тега (void element) и требует обязательного атрибутаsrc. - В спецификации HTML Living Standard насчитывается около 110 предопределённых элементов (по состоянию на 2024 год), но не все из них широко используются.
- Некоторые элементы, такие как
<wbr>(возможный перенос строки) и<bdi>(изоляция направления текста), были добавлены для поддержки многоязычного контента.
Источники
- WHATWG HTML Living Standard (раздел «Elements»).
- W3C HTML 5.2 Specification (раздел «The elements of HTML»).
- MDN Web Docs — «HTML elements reference».
- «HTML and CSS: Design and Build Websites» by Jon Duckett (2011).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →