HTML

Семантическая разметка

Семантические теги: header, nav, main, article, section, aside, footer и их значение.

Начальный (Beginner)
Нужно знать:Продвинутые формы

Кратко

Семантические теги говорят браузеру и скринридерам «ЧТО это». <header> — шапка, <nav> — навигация, <main> — основной контент, <article> — самостоятельная статья, <section> — раздел, <aside> — боковая панель, <footer> — подвал. Они делают код читаемым и доступным.


Подробно

Основные семантические теги HTML5:

<header> — шапка страницы или секции. Обычно содержит логотип, заголовок, навигацию.

<nav> — блок навигации. Содержит ссылки на другие страницы или разделы.

<main> — основной контент страницы. Только один на страницу! Не включает header, footer, nav.

<article> — самостоятельный контент: статья, пост, комментарий. Может жить отдельно (в RSS, агрегаторах).

<section> — тематическая группировка контента. Обычно с заголовком.

<aside> — побочный контент: боковая панель, реклама, ссылки.

<footer> — подвал страницы или секции: копирайт, ссылки, контакты.

Зачем нужна семантика:

  • SEO — поисковики понимают структуру
  • Доступность — скринридеры читают «навигация», «основной контент»
  • Поддержка — код проще читать и поддерживать
  • Спецификация — браузеры понимают, как обрабатывать элемент

Ментальная модель

Семантические теги — как.rooms в здании. header — прихожая, nav — указатели, main — главный зал, article — отдельная комната, section — зона внутри зала, aside — кладовка, footer — задний двор. Каждая комната имеет свою функцию.


Примеры

**Самый простой:**

html
<header>
  <h1>Мой сайт</h1>
</header>
<main>
  <article>
    <h2>Статья</h2>
    <p>Текст статьи.</p>
  </article>
</main>
<footer>
  <p>© 2025</p>
</footer>

Базовая семантическая структура: header, main, article, footer.

**Простой:**

html
<header>
  <h1>Блог</h1>
  <nav>
    <a href="/">Главная</a>
    <a href="/posts">Статьи</a>
    <a href="/about">О нас</a>
  </nav>
</header>

<main>
  <article>
    <h2>Как изучать HTML</h2>
    <section>
      <h3>Введение</h3>
      <p>HTML — первый шаг в веб-разработке.</p>
    </section>
    <section>
      <h3>Практика</h3>
      <p>Лучший способ учиться — практиковаться.</p>
    </section>
  </article>

  <aside>
    <h3>Рекомендации</h3>
    <ul>
      <li><a href="/css">Изучить CSS</a></li>
    </ul>
  </aside>
</main>

<footer>
  <p>© 2025 Мой блог</p>
</footer>

Полная семантическая структура блога с nav, article, section, aside.

**Реальный пример:**

html
<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>PROlab Academy</title>
</head>
<body>
  <header>
    <a href="/">
      <img src="logo.svg" alt="PROlab Academy" width="150" height="40">
    </a>
    <nav aria-label="Основная навигация">
      <a href="/courses">Курсы</a>
      <a href="/about">О нас</a>
      <a href="/contacts">Контакты</a>
    </nav>
  </header>

  <main>
    <article>
      <header>
        <h1>Введение в HTML</h1>
        <time datetime="2025-01-15">15 января 2025</time>
      </header>

      <section>
        <h2>Что такое HTML?</h2>
        <p>HTML — язык разметки...</p>
      </section>

      <section>
        <h2>Зачем учить HTML?</h2>
        <p>HTML — основа всего веба...</p>
      </section>

      <footer>
        <p>Автор: Иван Иванов</p>
      </footer>
    </article>

    <aside>
      <h2>Другие статьи</h2>
      <ul>
        <li><a href="/css-intro">Введение в CSS</a></li>
      </ul>
    </aside>
  </main>

  <footer>
    <p>© 2025 PROlab Academy. Все права защищены.</p>
  </footer>
</body>
</html>

Полный пример с семантическими тегами, time, aria-label и правильной вложенностью.


Частые ошибки

**Неправильно:** Использовать div вместо семантических тегов

**Почему:** div не несёт информации о назначении элемента. Браузеры, скринридеры и поисковики не понимают структуру.

**Правильно:** Для шапки — header, для навигации — nav, для контента — main. div — когда нет подходящего тега.

**Неправильно:** Вкладывать header/footer внутрь article

**Почему:** header/footer внутри article — это header/footer этой статьи (не страницы). Это допустимо, но нужно понимать разницу.

**Правильно:** header/footer страницы — на уровне body. header/footer статьи — внутри article.

**Неправильно:** Использовать несколько main

**Почему:** main — основной контент страницы. Только один! Несколько main запутывают скринридеры.

**Правильно:** Один <main> на страницу. Для других контейнеров используйте section, article, div.


Важно запомнить

  • header — шапка, nav — навигация, main — основной контент
  • article — самостоятельная статья, section — раздел
  • aside — побочный контент, footer — подвал
  • Один main на страницу
  • Семантика улучшает SEO и доступность

Связь

Назад: Вы знаете продвинутые формы (H12) — семантическая разметка структурирует всю страницу.

Вперёд: В следующем уроке (H14) вы изучите атрибуты: id, class, data-* и глобальные атрибуты.


Читайте дальше

Материалы курса HTML — PROlab Academy.