Введение

HTML5 (HyperText Markup Language) — это язык для структурирования и представления содержимого веб страниц. Сегодня он поддерживается практически всеми современными браузерами. Что касается старых версий IE (ниже 9 версии), то для них есть решение на JavaScript. Документ размеченый HTML5 легко читается как человеком так и поисковым ботом. Поскольку семантическая разметка позволяет структурировать елементы в соответствии с их предназначением. Итак, давайте рассмотрим эти елементы на примерах.

Оформление документа

Доктайп:

<!doctype html>

Кодировка:

<meta charset="utf-8" />

Язык:

<html lang="ru">

Элемент <main>

Содержит основной контент документа. Сюда не включаются навигационные панели, сайдбары, логотипы, копирайты и т.п.. Например:

<main>
    <h1>Заголовок</h1>
    <p>Описание</p>
    <article>
        <h2>Товар 1</h2>
        <p>Описание товара 1</p>
    </article>
    <article>
        <h2>Товар 2</h2>
        <p>Описание товара 2</p>
    </article>
</main>

Элемент <header>

Содержит навигационные и вводные елементы. Может включать заголовок, логотип, навигацию, форму поиска и т.п.. Например:

<header>
    <h1>Название компании</h1>
    <nav>
        <ul>
            <li><a href="/about">О компании</a></li>
            <li><a href="/store">Магазин</a></li>
            <li><a href="/feedback">Обратная связь</a></li>
        </ul>
    </nav>
</header>

В документе может быть несколько элементов <header>.

Элемент <footer>

Содержит информацию об авторстве, дате публикации, копирайт, контакты и т.п.. Например:

<footer>
    <p>Copyright © 2016. Jetsource.ru</p>
    <address> 
        Контакты для связи <a href="mailto:help@site.ru">Название компании</a>.
    </address>
    <nav>
        <ul>
            <li><a href="/about">О компании</a></li>
            <li><a href="/sitemap">Карта сайта</a></li>
            <li><a href="/feedback">Обратная связь</a></li>
        </ul>
    </nav>
</footer>

Элемент <section>

Объединяет елементы документа. Но не является обёрткой. Обязательно должен содержать заголовок. Может включать список новостей, вкладок, товаров и т.п.. Например:

<section>
    <h2>Заголовок</h2>
    <p>Содержимое</p>
</section>
<section>
    <h3>Новости</h3>
    <article>
        <h4>Новость 1</h4>
        <p>Описание новости 1</p>
    </article>
    <article>
        <h4>Новость 2</h4>
        <p>Описание новости 2</p>
    </article>
</section>

В документе может быть несколько элементов <section>.

Элемент <nav>

Содержит навигацию по сайту. Например:

<nav>
    <ul>
        <li><a href="/about">О компании</a></li>
        <li><a href="/store">Магазин</a></li>
        <li><a href="/feedback">Обратная связь</a></li>
    </ul>
</nav>

Элемент <article>

Содержит независимый блок информации. Может быть запись блога, новость, комментарий и т.п.. Также может включать в себя несколько других елементов <article>. Например:

<article>
    <h2>Заголовок статьи</h2>
    <div>Текст статьи</div>
    <div>
        <h3>Комментарии</h3>
        <article>
            <h4>Автор комментария1</h4>
            <p>Комментарий1</p>
        </article>
        <article>
            <h4>Автор комментария2</h4>
            <p>Комментарий2</p>
        </article>
    </div>
</article>

Элемент <aside>

Содержит елементы существующие независимо от контента. Это может быть рекламные блоки, плагины соцсетей, виджеты голосований и т.п.. Например:

<aside>
    <h2>Скидки на смартфоны</h2>
    <p>Спешите купить новый флагман от компании на 20% дешевле! <a href="/buy?id=45">Купить</a></p>
</aside>

Элемент <address>

Содержит контактную информацию. Например:

<address> 
    Контакты для связи <a href="mailto:help@site.ru">Название компании</a>.
</address>

Элемент <time>

Содержит дату и время. Имеет атрибут datetime. В котором указывается дата в формате YYYY-MM-DD. Например:

<time datetime="2016-01-31">31 января 2016 г.</time>

Элемент <mark>

Выделяет слово или словосочетание. По умолчанию желтым цветом. Может быть важным содержимым, на которое нужно обратить внимание или ключевым словом. Например:

Это здесь <mark>самое главное</mark> во всем тексте.

Элемент <wbr>

Указывает где допустим перенос строки. Можно применить для длинных слов, блоков кода, урлов и т.п.. Например:

Это был четырёхсотпяти<wbr>десяти<wbr>семи<wbr>миллиметровый калибр.

Совместимость с IE ниже 9 версии

У IE есть такая особенность, как не замечать неизвестные ему теги. Поэтому обратимся за помощью к JavaScript:

<!--[if lt IE 9]>
<script type="text/javascript">
    document.createElement('main');
    document.createElement('header');
    document.createElement('section');
    document.createElement('nav');
    document.createElement('article');
    document.createElement('aside');
    document.createElement('footer');
</script>
<![endif]-->

Корректное отображение тегов

Все елементы HTML5 по умолчанию инлайновые. Поэтому для корректного отображения нужно сделать их блочными. Например:

main, header, footer, section, nav, article, aside {display: block}

Заключение

В статье рассмотрены только основные структурные елементы HTML5. Но поскольку задачей являлось знакомство с языком разметки, то их вполне достаточно для его понимания. Главное помнить, что использование HTML5 улучшит семантическое содержимое страницы.