Структура страницы HTML5

В этой статье мы рассмотрим, какие элементы необходимо использовать при построении базовой структуры HTML документа.

Если вы посмотрите на сайт «HTML5 Herald», то увидите, что он разделен следующим образом:

  • шапка сайта с логотипом и заголовком;
  • панель навигации;
  • содержимое тела разделено на три столбца;
  • статьи и рекламные блоки в столбцах;
  • подвал сайта, содержащий информацию об авторе и авторских правах.

Прежде чем мы определим, какие HTML-элементы подходят для разных частей страницы, давайте рассмотрим ряд других вопросов. Прежде всего, мы познакомимся с несколькими новыми семантическими элементами HTML5, которые можно использовать, чтобы разделить страницу и сделать структуру документа более осмысленной.

Элемент header

Первым элементом структуры HTML, который мы рассмотрим, является элемент header. Спецификация описывает его кратко - «группа вводных или навигационных элементов».

Вопреки мнению, вы можете использовать header, чтобы представить каждый раздел контента. Когда мы используем здесь слово «раздел», мы не ограничиваемся разделами, разбитыми с помощью элемента section. Технически мы говорим о том, что в HTML5 называется «секционным контентом». Это означает любой фрагмент контента, которому может потребоваться собственный заголовок, даже если это приведет к тому, что на одной странице будет несколько таких фрагментов.

Элемент header может использоваться для включения вводного контента или средств навигации, которые являются специфическими для любого раздела страницы, или применяются ко всей странице.

Хотя элемент header часто размещается в верхней части страницы или раздела, его определение не зависит от положения. В структуре сайта может быть указано, что заголовок статьи или записи в блоге может размещаться справа, слева или даже ниже контента. Независимо от этого, все равно можете использовать header для описания контента.

Элемент section

Спецификация дает для него такое определение:

Элемент section представляет собой общий раздел документа или приложения. Раздел в этом контексте представляет собой тематическую группу контента, как правило, с заголовком.

Далее поясняется, что section не должен использоваться в качестве универсального контейнера для добавления стилей или скриптов. Если мы не можем использовать section в качестве общего контейнера - например, чтобы получить желаемый макет через CSS – то, что для этого использовать? В этом нам поможет элемент div, который не имеет определенного семантического значения.

Возвращаясь к определению из спецификации, содержимое элемента section должно быть «тематическим», поэтому неправильно использовать его для группировки несвязанных фрагментов контента.

Некоторые примеры корректного использования элемента section в структуре HTML страницы:

  • отдельные разделы интерфейса с вкладками;
  • сегменты страницы «О нас» может включать разделы, посвященные истории компании;
  • различные части длинной страницы «условий обслуживания»;
  • различные разделы сайта онлайн-новостей - статьи могут быть сгруппированы в разделы, посвященные спорту, политике и экономическим новостям.

Корректное использование section

Каждый раз, когда веб-дизайнерам предоставляется новая семантическая разметка, будет обсуждаться, что является правильным использованием этих элементов, какую цель преследовало ее введение в спецификации и т. д.

Вкратце:

  • section является общим элементом, поэтому, если требуется более конкретный семантический элемент (например, article, aside или nav), используйте их.
  • section имеет семантическое значение. Это означает, что контент, который он содержит, связан. Если вы не можете кратко описать весь контент, который хотите добавить в раздел, используя всего несколько слов, то нужно использовать семантически нейтральный контейнер - скромный div.

В некоторых случаях есть место для свободной интерпретации. Если чувствуете, что имеет смысл использовать именно данный элемент, а не другой, делайте это. Даже если кто-либо упрекнет вас в этом, дискуссия, которая возникнет в результате, может быть интересной и познавательной для всех, кто в ней участвует.

В структуре сайта HTML разрешается вкладывать элементы section в существующие элементы section, если это необходимо. Например, для сайта новостей раздел «Мировые новости» можно разделить на разделы для каждого крупного региона.

Элемент article

Элемент article во многом аналогичен элементу section, но есть и существенные различия. Определение спецификации гласит:

Элемент article представляет собой полный или самодостаточный набор в документе, на странице, в приложении или на сайте. Он может независимо распространяться или повторно использоваться.

Ключевыми моментами этого определения являются самодостаточный набор и независимо распространяться. В то время как section может содержать любой контент, который может быть сгруппирован тематически, article должен представлять собой единый контент, который может использоваться сам по себе. Это различие может быть трудно различимо для вас.

Поэтому, когда вы сомневаетесь, попробуйте протестировать синдикацию: если часть контента может быть переиздана на другом сайте без изменения, или если ее можно выложить как обновление через RSS, у нее есть признаки article.

Вот некоторые рекомендациями по применению article:

  • сообщение на форуме;
  • журнальная или газетная статья;
  • запись в блоге;
  • комментарий, оставленный пользователем в блоге или к статье.

Как и в случае с section, элементы article могут быть вложены в другие article. Также можно вложить элемент section внутрь article, и наоборот.

Элемент nav

Можно предположить, что элемент nav будет использоваться практически в каждой структуре HTML файла. Он представляет собой то, что подразумевается: группу навигационных ссылок. Хотя наиболее распространенное использование для nav будет заключаться в размещении маркированных списков ссылок. Есть и другие варианты. Например, можно обернуть в элемент nav абзац текста, содержащего основные ссылки навигации страницы или раздела.

В любом случае элемент nav должен быть зарезервирован для навигации, и это его первостепенное значение. Рекомендуется избегать использования nav для краткого списка ссылок, размещаемого в подвале сайта.

Примечание: Пропуск ссылок навигации

Решение, применение которого вы видели на многих сайтах - это ссылка «пропустить навигацию». Идея состоит в том, чтобы позволить пользователям экранных дикторов быстро пропустить основную навигацию сайта, если они уже прослушали ее.

При каждом переходе на новую страницу нет смысла слушать главное меню навигации сайта! Элемент nav может помочь в решении этого вопроса. Если экранный диктор видит элемент nav, он может позволить пропустить навигацию, не требуя дополнительной ссылки. В спецификации указано:

«Пользовательские агенты (например, программы чтения с экрана), предназначенные для пользователей, которые могут получить пользу от навигационной информации, опущенной при первоначальном рендеринге, или получить пользу от немедленного доступа к навигационной информации, могут использовать элемент в качестве способа определения, какой контент на странице сначала пропустить или предоставить по запросу».

Примечание. Пользовательские агенты

При изучении спецификации структуры HTML 5 вы столкнетесь с термином «пользовательский агент». Он обозначает браузер, который пользователь использует для доступа к содержимому веб-страницы. Причина, по которой в спецификации не говорят просто «браузер», заключается в том, что пользовательские агенты могут включать в себя программы чтения с экрана или другие технологические средства.

Можно использовать nav более одного раза на странице. Если у вас есть основная панель навигации сайта, она обертывается в элемент nav. Кроме этого, если есть вторичный набор ссылок, указывающих на разные части текущей страницы, его тоже можно обернуть в элемент nav.

Некоторые разработчики считают, что nav подходит для разбивки на страницы или ссылок «хлебных крошек». А также для формы поиска, которая является основным средством навигации по сайту.

Данное решение в конечном итоге зависит от вас. Ян Хиксон, главный редактор спецификации HTML5 WHATWG, прямо ответил на этот вопрос: «Используйте [его] там, где бы вы использовали class = nav».

Элемент aside

Представляет часть страницы, которая «связана с содержимым вокруг элемента aside и может рассматриваться отдельно от этого содержимого».

Элемент aside можно использовать для обертывания части контента, которая имеет отношение к:

  • Конкретному контенту (например, статья или раздел);
  • Целой странице или документу, как это обычно делается при добавлении боковой панели на страницу или сайт.

Элемент aside не должен использоваться для обертывания разделов страницы, которые являются частью основного содержимого.

Другими словами, aside не должен быть основным родительским элементом. Содержимое aside может размещаться само по себе, но оно все равно должно быть частью большего целого.

Варианты использования элемента aside в структуре index html: боковая панель, дополнительный список ссылок или блок рекламы. Следует также отметить, что элемент aside (как и в случае с элементов header) не определяется его позицией на странице. Он может располагаться сбоку или в другом месте.

Элемент footer

Как и в случае с элементом header, может быть несколько элементов footer на одной странице, и вы должны использовать footer вместо <div id = "footer">.

Элемент footer, согласно спецификации, представляет собой футер для раздела контента, являющегося его ближайшим предком. Разделом контента может быть весь документ или элемент section, article, aside.

Часто footer будет содержать информацию об авторских правах, списки связанных ссылок, информацию об авторе и другую информацию, которую принято размещать в конце блока контента. Но, как и в случае с aside и header, элемент footer не определяется его положением на странице. Поэтому он не обязательно размещаться в конце раздела или в нижней части страницы. Например, информация об авторе поста в блоге может отображаться над постом, а не ниже, и будет по-прежнему считаться информацией футера в структуре HTML.

Перевод статьи «HTML5 Page Structure Basics» дружной командой проекта Сайтостроение от А до Я.

20 июля 2017 в 13:26
Материалы по теме
{"url":"http://www.fastvps.ru/", "src":"/images/advbanners/fastvps.png", "alt":"Хостинг Fastvps.ru. Наш выбор!"}
Заработок