Зачем использовать семантические теги Html5, такие как headers
section
nav
article
вместо простого div
с предпочтительным css
к нему. Я создал веб-страницу и использовал те теги, но они не отличаются от div. В чем их главная цель. Является ли это только для соответствующих имен тегов при его использовании или более того? Пожалуйста, объясните, что я прошел через многие сайты, но не смог найти эти основы.
Почему использовать семантический тег HTML5 вместо div
Ответ 1
Как говорится в их имени, это только для семантических целей. Это для улучшения автоматической обработки документов. Автоматическая обработка происходит чаще, чем вы понимаете - каждый рейтинг сайта из поисковых систем происходит от автоматической обработки всего веб-сайта.
Если вы посещаете веб-страницу, вы, как человек, можете сразу (визуально) различать все элементы страницы и, что более важно, понимать контент.
Однако машины тупые и не могут этого сделать:
Представьте себе веб-гусеничный или экранный анализатор, который пытается анализировать вашу веб-страницу с помощью div повсюду. Как они узнают, какую часть документа вы намеревались стать навигацией или главной статьей или каким-то не столь важным сайдэтом? Они могут угадать, анализируя структуру вашего документа, используя некоторые общие критерии, которые являются подсказкой для определенного элемента. Например. a ul
список внутренних ссылок, скорее всего, представляет собой какую-то навигацию по страницам. Однако, если вместо этого будет использоваться элемент nav
, машина сразу же узнает, какова цель этого элемента.
Пример. Вы, как пользователь (читаете страницу, не видя фактической разметки), не волнует, если элемент заключен в тег <i>
или <em>
. Вероятно, в большинстве браузеров он будет отображаться как курсивный текст, и пока он выделяется из текста, чтобы легко его распознать, вы в порядке с ним.
Тем не менее, существует большая разница в терминах семантики: <i>
просто означает italic - это презентационный намек для браузера и необязательно содержит более глубокую семантическую информацию. <em>
однако означает подчеркивание, которое семантически указывает на важную часть информации. Теперь браузер больше не привязан к курсивной инструкции, но может визуализировать его визуально курсивом или полужирным шрифтом или подчеркнутым или другим цветом... Для людей с ослабленным зрением на экране читатели могут поднять голос - какой бы метод ни казался наиболее подходящим конкретную ситуацию, чтобы подчеркнуть эту важную информацию.
// machine: okay, this structure looks like it might be a navigation element?
<div class="some-meaningless-class"><ul><li><a href="internal_link">...</div>
// machine: ah, a navigation element!
<nav class="some-meaningless-class"><ul><li><a>...</nav>
Ответ 2
Там хорошая статья о семантике HTML5 на HTML5Doctor.
Семантика была частью html в той или иной форме. Это помогает понять, что происходит на странице.
Раньше, когда <div>
использовался для почти всего, мы все же использовали семантику, предоставляя ей "семантическое" имя класса или имя идентификатора.
Эти теги помогают в правильном структурировании и понимании макета.
Если вы это сделаете,
<div class="nav"></div>
в отличие от
<nav></nav>
ИЛИ
<div class="sidebar"></div>
в отличие от
<aside></aside>
нет ничего плохого, но последнее помогает в обеспечении лучшей читаемости для вас, а также сканеров, читателей и т.д.
Ответ 3
В теге div вы должны указать идентификатор, который указывает, какой контент он удерживает, либо тело, либо верхний или нижний колонтитул и т.д. в то время как в случае семантических элементов HTML5 имя четко определяет, какой код он держит, для какой части веб-сайта.
Семантические элементы: <header>
, <footer>
, <section>
, <aside>
и т.д.