Открыть сервис

Предопределенные элементы

Предопределённые элементы — в контексте веб-разработки и языка разметки 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. Кастомные элементы наследуют поведение от стандартных или определяют его с нуля, но не могут полностью заменить встроенные элементы без потери семантики и доступности.

Примеры использования

  1. Структура документа:

``html <!DOCTYPE html> <html> <head> <title>Пример</title> </head> <body> <header>Шапка сайта</header> <main> <article> <h1>Заголовок статьи</h1> <p>Текст абзаца.</p> </article> </main> <footer>Подвал</footer> </body> </html> ``

  1. Форма ввода данных:

``html <form action="/submit" method="post"> <label for="name">Имя:</label> <input type="text" id="name" name="name"> <button type="submit">Отправить</button> </form> ``

  1. Медиа-контент:

``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 →