Семантика - это изучение значений слов и фраз на языке HTML.
Семантические элементы = элементы со смыслом.
Что такое семантические элементы?
Семантический элемент четко описывает его значение как для браузера, так и для разработчика.
Примеры несемантических элементов: <div> и <span> - Ничего не говорит о его содержании.
Примеры семантических элементов: <form>, <table> и <article> - Четко определяет его содержание.
Поддержка браузеров
| Да | Да | Да | Да | Да |
Семантические элементы HTML5 поддерживаются во всех современных браузерах.
Кроме того, вы можете "выучить" как обращаються старые браузеры с "неизвестными элементами".
Читайте об этом в Поддержка браузеров HTML5.
Новые семантические элементы в HTML5
Многие веб-сайты содержат код HTML как: <div id="nav"> <div class="header"> <div id="footer">
для обозначения навигации, верхнего и нижнего колонтитулов.
HTML5 предлагает новые семантические элементы для определения различных частей веб-страницы:
- <article>
- <aside>
- <details>
- <figcaption>
- <figure>
- <footer>
- <header>
- <main>
- <mark>
- <nav>
- <section>
- <summary>
- <time>
HTML5 <section>
Элемент <section> определяет раздел в документе.
Согласно документации HTML5 W3C: "section - это тематическая группа контента, обычно с заголовком."
Домашняя страница обычно разделяется на разделы для введения, содержания и контактной информации.
<section>
<h1>WWF</h1>
<p>Всемирный Фонд природы (WWF)...</p>
</section>
Попробуйте сами »
HTML5 <article>
Элемент <article> задает независимое, автономное содержимое.
Статья должна иметь смысл сама по себе и ее можно читать независимо от остальной части веб-сайта.
Примеры того, где можно использовать элемент <article>:
- Сообщения форумов
- Блог
- Газетная статья
<article>
<h1>Что делает WWF?</h1>
<p>Миссия WWF - остановить деградацию естественной среды нашей планеты,
построить будущее, в котором люди заживут в гармонии с природой.</p>
</article>
Попробуйте сами »
Вложить <article> в <section> или наоборот?
Элемент <article> задает независимое, автономное содержимое.
Элемент <section> определяет раздел в документе.
Можем ли мы использовать определения, чтобы решить, как вложить эти элементы? Нет, мы не можем!
Итак, в интернете вы найдете страницы HTML с элементами <section> содержащих <article> elements и элементами <article> содержащих элемент <section> .
Вы также найдете страницы с элементами <section> содержащих элемент <section>, и элемент <article> содержащий элементы <article>.
Пример для газеты: Спорт <article> в спорте section, может иметь техническое section в каждом <article>.
HTML5 <header>
Элемент <header> задает заголовок документа или раздела.
Элемент <header> должен использоваться в качестве контейнера для вводного содержимого.
Можно использовать несколько элементов <header> в одном документе.
В следующем примере определяется заголовок статьи:
<article>
<header>
<h1>Что делает WWF?</h1>
<p>Миссия WWF:</p>
</header>
<p>Миссия WWF - остановить деградацию естественной среды нашей планеты ,
постройть будущее, в котором люди будут жить в гармонии с природой.</p>
</article>
Попробуйте сами »
HTML5 <footer>
Элемент <footer> задает нижний колонтитул для документа или раздела.
Элемент <footer> должен содержать информацию о содержащем его элементе.
Нижний колонтитул обычно содержит автор документа, информацию об авторских правах, ссылки на правила пользования, контактная информация и т. д.
Можно использовать несколько элементов <footer> в одном документе.
<footer>
<p>Автор: Щипунов Андрей</p>
<p>Контактная информация: <a href="mailto:someone@example.com">
someone@example.com</a>.</p>
</footer>
Попробуйте сами »
HTML5 <nav> /h2>
Элемент <nav> определяет набор навигационных ссылок.
Обратите внимание, что не все ссылки документа должны быть внутри элемента <nav>. Элемент <nav> предназначен только для основного блока навигационных ссылок.
<nav>
<a href="/html/">HTML</a> |
<a href="/css/">CSS</a> |
<a href="/js/">JavaScript</a> |
<a href="/jquery/">jQuery</a>
</nav>
Попробуйте сами »
HTML5 <aside>
Элемент <aside> определяет некоторое содержимое aside из контента, в который он помещен (например, боковая панель).
Содержимое <aside> должно быть связано с окружающим контентом.
<p>Моя семья, посетили центр Epcot этим летом.</p>
<aside>
<h4>Центр Epcot</h4>
<p>Epcot - это тематический парк в Диснейуорлде, штат Флорида.</p>
</aside>
Попробуйте сами »
HTML5 <figure> и<figcaption>
Цель подписи к рисунку - добавить визуальное объяснение к изображению.
В HTML5 изображение и заголовок можно сгруппировать в элементе <figure>:
<figure>
<img src="pic_mountain.jpg" alt="Пульпит Рок" width="304" height="228">
<figcaption>Рис. 1. - Прекестулен, Норвегия.</figcaption>
</figure>
Попробуйте сами »
Элемент <img> определяет изображение, элемент <figcaption> определяет заголовок.
Почему семантические элементы?
В HTML4 разработчики использовали собственные имена id/class для стилизации элементов: header, top, bottom, footer, menu, navigation, main, container, content, article, sidebar, topnav и т. д.
Это сделало невозможным для поисковых систем определить правильный контент веб-страницы.
Новые элементы HTML5 (<header> <footer> <nav> <section> <article>), станет легче выполнить.
Согласно W3C, семантический веб: "Позволяет совместно и повторно использовать данные между приложениями, предприятиями и сообществами."
Семантические элементы в HTML5
Ниже приведен алфавитный список новых семантических элементов в HTML5.
Ссылка к нашему полному Справочнику HTML5.
| Тег | Описание |
|---|---|
| <article> | Определение статьи |
| <aside> | Определяет содержимое aside из содержимого страницы |
| <details> | Определяет дополнительные сведения, которые пользователь может просмотреть или скрыть |
| <figcaption> | Определяет заголовок для элемента <figure> |
| <figure> | Указывает автономный контент, например иллюстрации, диаграммы, фотографии, списки кодов и т. д. |
| <footer> | Определяет нижний колонтитул для документа или раздела |
| <header> | Задает заголовок для документа или раздела |
| <main> | Определяет основное содержание документа |
| <mark> | Определяет маркированный / выделенный текст |
| <nav> | Определяет ссылки навигации |
| <section> | Определяет раздел в документе |
| <summary> | Определяет видимый заголовок элемента <details> |
| <time> | Определяет дату/время |