Статьи

Определение структуры страницы примера сайта

htmlcss2thumb

Ниже приводится выдержка из нашей книги « HTML5 и CSS3 для реального мира», 2-е издание , написанной Алексисом Гольдштейном, Луи Лазарисом и Эстель Вейль. Копии продаются в магазинах по всему миру, или вы можете купить их в электронном виде здесь .

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

Начнем сверху, с элемента header Здесь имеет смысл включить логотип и название The Herald , а также слоган. Мы также можем добавить элемент nav

После header Хотя у вас может возникнуть соблазн использовать для них элементы section Если бы каждый столбец содержал отдельный «раздел» информации (например, раздел о спорте и раздел о развлечениях), это имело бы смысл. Тем не менее, в действительности разделение на столбцы — это только визуальное расположение, поэтому мы будем использовать простой старый div

Внутри этих div это, конечно, идеальные кандидаты на элемент article

Тем не менее, в крайнем правом столбце в дополнение к статье содержатся три объявления. Мы будем использовать дополнительный элемент, чтобы обернуть рекламу, при этом каждое объявление будет размещено внутри элемента aside Это может показаться странным, но оглянитесь на описание article

Далее мы добавим еще один элемент article Эта последняя статья будет исключена из дополнительного элемента, который содержит три объявления. Чтобы быть в articleaside Это не так: эта статья является частью основного контента страницы, поэтому было бы неправильно включать ее в aside

Теперь третий столбец состоит из двух элементов: articleaside Чтобы удержать их вместе и сделать их проще в стиле, мы завернем их в aside Мы не используем articledivsection Это не так — это просто особенность нашего дизайна, когда они оказываются в одной колонке вместе.

Новый article

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

К сожалению, определить main Но давайте начнем с того, откуда возник этот элемент. В некоторых HTML-документах разработчики оборачивали свой основной контент в общий элемент, например так:

 main

Обратите внимание на общий элемент main<body> <header> ... </header>
<div id="main"> ... </div>
<footer> ... </footer>
</body>
div
Обратите также внимание на атрибут ID со значением header В дополнение к этому многие разработчики добавили footer

 "main"

Мы не будем вдаваться в подробности ARIA здесь — это описано в Приложении B — но в основном новый role

Спецификация W3C определяет <div id="main" role="main"> ...
</div>
« main
Основная область контента состоит из контента, который напрямую связан с центральной темой документа или центральной функциональностью приложения ».

Спецификация WHATWG определяет его аналогично; однако, у этих двух спецификаций очень разные определения. Спецификация WHATWG гласит :

«Нет ограничений по количеству main Действительно, во многих случаях было бы целесообразно иметь несколько main Например, странице с несколькими элементами main

Но нехарактерно, в полном противоречии с этим, спецификация W3C гласит:

«Авторы не должны включать в документ более одного main Авторы не должны включать articlemainmainarticleasidefooter

Кроме того, спецификация W3C добавляет рекомендацию использовать атрибут headernavrole="main" Обладая этими знаниями, мы собираемся принять рекомендацию W3C и использовать только один main

Возвращаясь к нашей разметке Herald , вот как это будет выглядеть после того, как мы добавили mainmain

 main

Как видите, body<body> <header> ... </header> <main role="main">
</main> <footer> ... </footer> <script src="js/scripts.js"></script>
</body>
main
Внутри headerHTML5 Herald .

Последняя часть нашего макета, которую мы рассмотрим здесь, это нижний колонтитул, который вы можете увидеть на скриншоте The Herald в его традиционном расположении — внизу страницы. Поскольку нижний колонтитул содержит несколько различных фрагментов контента, каждый из которых образует автономную и тематически связанную единицу, мы разделили их на элементы footer Информация об авторе будет формироваться в одном mainsection Тогда есть еще один section

Давайте добавим новые элементы на нашу страницу, чтобы мы могли видеть, где находится наш документ:

 sectionв sectionв <body>
  <header>
    <nav></nav>
  </header>

  <main role="main">
    <div class="primary">
      <article></article>
    </div>

    <div class="secondary">
      <article></article>
    </div>

    <div class="tertiary">
      <aside>
        <article></article>
      </aside>

      <article>
      </article>

    </div>
  </main><!-- main -->

  <footer>
    <section id="authors">
      <section></section>
    </section>
    <section id="copyright">
    </section>
  </footer>

  <script src="js/scripts.js"></script>
</body>

На рисунке ниже показан снимок экрана, на котором показана наша страница с некоторыми метками, обозначающими основные структурные элементы, которые мы использовали.

fig_2_structure

Теперь у нас есть структура, которая может служить прочной основой для содержания нашего веб-сайта.

Завершение дела

Вот именно для этой главы. Мы изучили некоторые основы структуры контента в HTML5 и начали создавать наш пример проекта, используя полученные знания.

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