Структура html5 страницы: Структура кода | htmlbook.ru
Содержание
Типовая структура страницы в HTML5 — CSS-LIVE
Дополнение от 1.03.2016: у нас есть более свежая статья на эту же тему (перевод заметки редактора спецификации W3C HTML5).
Типовая структура страницы в HTML5:
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Ваш сайт</title> </head> <body> <header> <nav> <ul> <li>Ваше меню</li> </ul> </nav> </header> <section> <article> <header> <h3>Заголовок статьи</h3> <p>Опубликовано <time datetime="2014-01-30T16:31:24+03:00">30 января 2014</time> <a href="#">Автор</a> - <a href="#comments">6 комментариев</a></p> </header> <p>Давно выяснено, что при оценке дизайна и композиции читаемый текст мешает сосредоточиться. </p> </article> <article> <header> <h3>Заголовок статьи</h3> <p>Опубликовано <time datetime="2014-01-30T16:31:24+03:00">30 января 2014</time> <a href="#">Автор</a> - <a href="#comments">6 комментариев</a></p> </header> <p>Многие программы электронной вёрстки и редакторы HTML используют Lorem Ipsum в качестве текста по умолчанию.</p> </article> </section> <aside> <h3>Об авторе</h3> <p>Нет никого, кто любил бы боль саму по себе, кто искал бы её и кто хотел бы иметь её просто потому, что это боль..</p> </aside> <footer> <p>Copyright 2014 Ваш сайт</p> </footer> </body> </html>
P.S. Это тоже может быть интересно:
Структура html5 страницы (документа): чем она отличается?
От автора: я вновь приветствую вас на блоге webformyself. А может вы здесь и впервые. Сегодня мы рассмотрим, из чего состоит структура html5 страницы и как она поменялась с выходом этой новой спецификации.
Как изменилась структура
Прежде всего, я хотел бы сказать, что до появления html5 явной структуры как таковой вообще не существовало. Как верстались все шаблоны? В большинстве случаев использовался метод блочной верстки, ставший сегодня стандартным. В качестве контейнеров для элементов использовались обычные div с разными идентификаторами.
Например, шапка обычно обозначалась как div с идентификатором header, блок с основной информацией называли main или content, боковая колонка получила идентификатор sidebar.
В общем-то, очень мало разработчиков, которые выбирали другие имена классов или уникальных меток. В самом деле, что может быть более понятным и правильным обозначением боковой колонки, чем слово sidebar? Его понимают даже люди, очень мало знакомые с английским.
В связи с этим, в html5 назревало появление новых элементов – семантических блоков, которые были призваны заменить обычные div, придать разметке больше смысла.
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
Узнать подробнее
Собственно говоря, историю их происхождения вы также можете узнать в первом уроке премиум-курса по основам html5. Я советую вам ознакомиться с ним, если вы пока очень мало знаете об этой спецификации. Ну а я расскажу вам теперь о некоторых из этих новых элементов.
Новые семантические блоки в разметке
Стоит отметить, что подходящий тег придумали практически для любого элемента на веб-странице. Например, для шапки. По стандарту ее всегда делали так: div id = “header”. Теперь необходимость в этом отпала – появился контейнер header. Да, это парный тег и в него помещается все содержимое шапки.
Впрочем, это не означает, что к нему нельзя привязать класс или идентификатор. Конечно, можно, и так и будут делать. Header имеет немного большую роль, чем только контейнер для главной шапки сайта.
Если вы присмотритесь к содержанию новости или статьи на практически любом веб-ресурсе, то обнаружите там не только текст, но и какую-то дополнительную информацию. Например, число просмотров, лайков, количество комментариев, вступление к статье, выводы, дату публикации и много чего другого. На каждом сайте по-разному.
Так вот, к чему это я? У статьи (новости, обзора и т.д.) тоже может быть своя шапка, своя заключительная часть и т.д. Соответственно, на странице может быть несколько header-ов, каждый со своим классом.
К слову, подвал сайта, самая нижняя его часть, формируется в html5 тегом footer. Для вас это будет очевидным, если вы сверстали хотя бы несколько типичных макетов – именно такой класс обычно дают этому блоку.
Теперь о меню. Раньше оно тоже не имело своего собственного, уникального контейнера, который мог бы его отличать. Оно тоже формировалось в помощью div. Естественно, для такого важного элемента на странице тоже придумали свой тег – nav (navigation). Он тоже не обязательно должен быть одним на странице – на некоторы веб-ресурсах можно наблюдать несколько разных меню и все же по своему смыслу в него рекомендуется заключать самые важные ссылки на странице.
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
Узнать подробнее
Вы наверное, замечали, как сильно может отличаться основное содержимое от того, что показывается в боковой колонке? Если подумать, то это вообще разные секции шаблона. Вот именно – секции! Наверняка подобным образом думали и разработчики спецификации html5, поэтому они создали тег – section. Его общий смысл заключается в том, что он содержит в себе часть документа (секцию), в целом независимую от других, у которой может быть свой заголовок и т.д.
Пример новой разметки
Хорошо, мы с вами уже узнали о некоторых новых элементах, давайте попробуем сделать разметку c их помощью.
<header>Шапка</header>
<nav>Главное меню</nav>
<section id = “sidebar”>Сайдбар</section>
<section id = “content”>
<h2>Заголовок</h2>
<aside>Второстепенная информация о статье</aside>
<article>Сама статья</article>
</section>
<footer>Подвал</footer>
<header>Шапка</header> <nav>Главное меню</nav> <section id = “sidebar”>Сайдбар</section> <section id = “content”> <h2>Заголовок</h2> <aside>Второстепенная информация о статье</aside> <article>Сама статья</article> </section> <footer>Подвал</footer> |
Конечно, это очень простой пример. В реальности еще к этим элементам добавляются какие-то стилевые классы. Здесь мы с вами применили два абсолютно новых тега – article и aside. Как вы понимаете, тег article обозначает основную информацию на странице, причем исключительно ее текст.
Такие важные вещи, как дату публикации или количество комментариев, лучше вынести отдельно в блок aside. Он создан для того, чтобы помещать в него информацию, которая не является главной, имеет второстепенное значение, по сравнению с основной.
Конечно, дата публикации это важно, но она никак не связана с самой статьей по смыслу. Именно поэтому рекомендуется обрамлять ее в другой тег. Собственно, эти рекомендации не являются обязательными к выполнению. Например, если вы в тег article включите всю статью с датой, кол-вом просмотров и другой побочной информацией, ничего страшного не случится. Я бы даже сказал, что вообще ничего не случится, просто нужно стремиться делать более правильно.
Наконец, если говорить о времени (дате), то ее желательно заключать в новый тег time. Это позволит браузеру действительно считать это датой, а не просто каким-то случайным элементом на странице.
Конечно, представленный выше вариант разметки является лишь одним из примеров, на каждом реальном сайте по-разному. Например, в любой section можно добавить header и footer – они будут обозначать начало и конец секции, второстепенная информация может находиться ниже самой статьи, а не выше. Тут много разных вариантов, причем вы разбираем только структуру блога, на других типах веб-ресурсов все может быть совсем по-другому. Например, вот другой вариант разметки, и он тоже имеет право на жизнь:
Итак, вот так быстро мы с вами прошлись по структуре html5 – новым тегам этой спецификации, которые помогают сделать разметку веб-страницы куда более понятной. Подписывайтесь на наш блог, если вы хотите продолжать изучение сайтостроения.
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
Узнать подробнее
PSD to HTML
Верстка сайта на HTML5 и CSS3 с нуля
Смотреть
HTML5 — Основы создания структуры документа
Статья, которая повествует об основах создания структуры документа в HTML 5.
Семантика и структура документа в HTML 5
Структура документа играет очень важную роль для понимания того, как устроена веб-страница. Она определяет то, как контенты организованы и взаимосвязаны между собой в документе, а также их относительную важность. Если воспользоваться схемой документа, то можно увидеть, как более просто стало просматривать информацию. Правильно спроектированная структура придаёт содержимому страницы смысл, делает его более лёгким для чтения, которое осуществляется поисковыми системами и другими пользовательскими агентами. На сайте, в котором правильно спроектирована структура, проще ориентироваться и находить нужную информацию.
Создание структуры документа до HTML 5
Перед изучением процесса создания структуры документа в HTML 5, желательно познакомиться с тем, как это осуществлялось в предыдущей версии языка и с какими проблемами веб-разработчику при этом приходилось сталкиваться.
Как образуется структура документа в HTML 4
Создание структуры документа в HTML 4 осуществляется с помощью 6 элементов (h2
, h3
, h4
, h5
, h5
, h6
). Эти элементы, при их размещении на странице, создают неявные разделы. Данные разделы называются неявными, потому что автор их в документе явно не создаёт. Они образуются автоматически, как только user agent встречает один из этих элементов в документе. Впоследствии из всех созданных user agent-ом разделов образуется структура документа.
Проблемы при реализации структуры документа
Модель структуры документа, использованная в HTML 4, имеет существенные ограничения, которые связаны с тем, что автору доступны для её создания всего 6 элементов h2
, h3
, h4
, h5
, h5
и h6
. С помощью этих элементов веб-разработчик не может спроектировать структуру документа, которая одновременно обеспечивала бы логическую взаимосвязь между разделами и отвечала критериям SEO.
Более подробно познакомиться с процессом создания структуры документа в HTML 4 и с проблемами при её реализации можно в следующей статье.
Создание структуры документа в HTML 5
Стратегия создания структуры документа в HTML5 значительно изменилась. Теперь она не определяется только одними заголовками, т.к. это всегда для большинства веб-разработчиков выглядело как-то нелепо. Заголовки позволяют определить структуру документа, но они не группируют контент. До HTML 5 авторы группировали контент с помощью элементов div
, а затем использовали атрибуты классов или id
атрибуты для того, чтобы присвоить этим разделам более семантически верное значение. К счастью в HTML5 появилась новая группа элементов sectioning, которые позволяют авторам создавать описание (структуру) документа. К этой группе относятся элементы article
, aside
, nav
и section
. Их основное назначение сделать код HTML более семантическим, добавить в него смысл с помощью разметки.
Элементы, предназначенные для создания структуры в HTML 5
Для создания структуры документа в HTML 5 используются заголовочные элементы (h2
, h3
, h4
, h5
, h5
и h6
) и элементы nav
, aside
, section
и article
из группы sectioning. Данные элементы в отличие от заголовков предназначены для создания явных разделов и установления этим разделам некоторого смысла.
Процесс создания структуры документа в HTML5
Для того чтобы было более просто понять основные принципы структурирования документа в HTML 5 будет считать, что элементы body
, nav
, aside
, section
и article
создают секции (явные разделы), а элементы h2
, h3
, h4
, h5
, h5
и h6
— обычные разделы (неявные разделы).
Процесс разработки структуры документа рассмотрим посредством пошаговых инструкций.
В HTML 5 создание структуры документа начинается с элемента body
. Данный элемент создаёт основную секцию (раздел на уровне документа).
<body> </body> --> Вышеприведённый пример будет создавть следующую структуру документа: [document] Untitled
После этого обычно переходят к созданию секций внутри body
(основной секции). Например, создадим секции nav
, section
и aside
. Эти секции будут являться дочерними по отношению к body
.
<body> <nav></nav> <section></section> <aside></aside> </body> --> Вышеприведённый пример будет создавать следующую структуру документа: [document] Untitled [nav] Untitled [section] Untitled [aside] Untitled
Каждая из секций (nav
, aside
, section
, article
) в свою очередь тоже может содержать секции. Таким образом, в HTML 5 получается структура документа. Т.е. одни секции вкладываются в другие. Секции, которые расположены непосредственно в body
, имеют 2 уровень. А секции, которые расположены непосредственно в секциях 2 уровня будут уже иметь 3 уровень и т.д.
Например, создадим в section
3 секции article
.
<body> <nav></nav> <section> <article></article> <article></article> <article></article> </section> <aside></aside> </body> --> Вышеприведённый пример будет создавать следующую структуру документа: [document] Untitled [nav] Untitled [section] Untitled [article] Untitled [article] Untitled [article] Untitled [aside] Untitled
Элементы h2
, h3
, h4
, h5
, h5
и h6
в HTML5 применяются для указания названия секции (т.е. выступают в качестве заголовка секции) и для создания неявных разделов внутри секции. Причём взаимосвязь между неявными разделами осуществляется только в пределах одной секции. Т.е. заголовочные элементы, находящиеся в одной секции, не связаны с заголовочными элементами, находящимися в другой секции. Другими словами неявные разделы одной секции изолированы от неявных разделах другой секции. В качестве заголовка секции выступает заголовочный элемент, находящийся в этой секции и имеющий самый высокий ранг (уровень). Если секция не содержит заголовочный элемент, то она не имеет названия (Untitled).
Внимание: В HTML 4 в отличие от HTML 5 взаимосвязь между неявными разделами осуществлялась в пределах всего документа, а не в пределах секции (body
, nav
, aside
, section
, article
). В HTML 4 нет элементов для создания секций.
Например, создадим названия для всех секций кроме nav
.
<body> <h2>A</h2> <nav></nav> <section> <h2>B</h2> <article> <h2>C</h2> </article> <article> <h2>D</h2> </article> <article> <h2>E</h2> </article> </section> <aside> <h2>F</h2> </aside> </body> --> Вышеприведённый пример будет создавать следующую структуру документа: [document] A [nav] Untitled [section] B [article] C [article] D [article] E [aside] F
Например, создадим неявные разделы в секции section
и aside
:
<body> <h2>A</h2> <nav></nav> <section> <h2>B</h2> <article> <h2>C</h2> </article> <article> <h2>D</h2> </article> <article> <h2>E</h2> </article> <h3>B-R1</h3> <h4>B-R2</h4> <h3>B-R3</h3> </section> <aside> <h2>F</h2> <h3>F-R1</h3> <h4>F-R2</h4> <h5>F-R3</h5> <h4>F-R4</h4> <h4>F-R5</h4> </aside> </body> --> Вышеприведённый пример будет создавать следующую структуру документа: [document] A [nav] Untitled [section] B [article] C [article] D [article] E [h3] B-R1 [h4] B-R2 [h3] B-R3 [aside] F [h3] F-R1 [h4] F-R2 [h5] F-R3 [h4] F-R4 [h4] F-R5
Правильная структура страницы на HTML5, новые семантические теги
06.07.18 HTML 1464
С появлением новой версии HTML, стало возможным верстать страницы по-новому. А именно, в HTML5 появились новые семантические теги, которые четко выделяют части страницы и делают ее структуру полностью прозрачной. Что это за теги и почему важно использовать их при верстке?
Раньше страницу можно было верстать любым способом, например, простым размещением блоков div. В таком случае семантическое значение вычислялось поисковиками и другими сервисами при помощи классов и идентификаторов. Сейчас же эту проблему решают новейшие теги. Кроме семантики, теги помогают построить внешний вид современного веб-приложения или сайта более совершенно.
Согласно спецификации HTML5, каждый новый тег относится к определенной категории (0 или более) контента. Перечислим эти категории содержимого:
- Мета,
- Заголовочное,
- Текстовое,
- Потоковое,
- Секционное,
- Встроенное,
- Интерактивное.
Как видно, категорий совсем немного. Эти условные деления на категории необходимы для более четкого структурирования тегов. Перечислим сами теги: header, nav, article, section, aside, footer, address, main, figure, figcaption, time, mark, bdi, wbr. Кроме этих тегов, еще нужно не забывать про элементы для описания восточно-азиатских символов: ruby, rb, rt, rtc, rp. Ниже рассмотрим кратко новые теги, приводится название и категория содержимого в скобках.
Тег header (потоковое)
Данный тег позволяет группировать навигационные и вводные элементы. Можно размещать по желанию сколько нужно таких тегов или ни одного, в любой части страницы. Нельзя вкладывать в тег footer и address, а также в сам тег header.
Тег nav (потоковое, секционное)
Как видно из названия тега, служит для создания блока навигации, различных меню и блоков ссылок. Можно использовать несколько раз на странице.
Тег article (потоковое, секционное)
Тег предназначен для группирования статей на странице, его стоит применять если на одной странице размещено несколько статей, если же всего лишь одна статья, тогда можно не использовать данный тег.
Тег section (потоковое, секционное)
Тег предназначен для деления страницы на части и разделы, выделения определённых секций на странице. Например, можно сделать на одной странице секцию статей, секцию комментарий, секцию галереи и т.д.
Тег aside (потоковое, секционное)
Этот тег позволяет выделить какое-либо содержимое страницы в отдельную логическую часть, например, с его помощью можно сделать боковую колонку, как в книге.
Тег footer (потоковое)
Тег служит для создания футера на сайте, места в котором обычно размещается информация о сайте, копирайте и т.д. Можно использовать несколько раз на странице.
Тег address (потоковое)
Тег полезен для создания блока с адресной информацией, особенно важно для продвижения в поисковых системах. Содержимое в данном теге обычно выделяется браузерами курсивом.
Тег main (потоковое)
Элемент можно использовать для определения основной части страницы, не может быть потомком тегов: article, aside, footer, header, nav.
Тег figure (потоковое, корневое)
Данный тег используется для выделения автономного контента, например, с его помощью можно сделать блок, содержащий фотографию и описание к ней.
Тег figcaption (-)
Тег является потомком тега figure и позволяет разместить описание или подпись, а также другую информацию к нужному элементу на странице.
Тег time (потоковое, текстовое)
Важный тег, который позволяет ввести дату и время. Это может быть полезно для поисковых систем, а также для пользователей. С появлением данного тега, стало возможным задавать дату в стандартных временных форматах.
Тег mark (потоковое, текстовое)
Тег позволяет выделить контент на странице цветом, как маркером на бумаге. Обычно это желтый цвет, но можно изменить цвет стилями.
Тег bdi (потоковое, текстовое)
Тег отделяет текст, который можно будет читать как слева направо, так и наоборот.
Тег wbr (потоковое, текстовое)
Тег-одиночка, позволяет задать место, где браузеру можно разорвать длинную строку.
Таким образом, новые теги позволяют эффективно производить разметку страницы, это крайне важно для поискового продвижения и для использования веб-страниц в различных сервисах.
Структура (скелет) сайта на HTML5 . Основная структура сайта
Структура сайт на HTML5 немногим отличается от обычной структуры. В новой версии языка разметки введены новые семантические элементы которые позволяют лучше структурировать страницу сайта и придать каждому блоку определенный смысл.
Мы рассмотрим основные нововведения HTML5 которые облегчают разработку сайта.
Самая простая структура тела сайта имеет стандартные части (в большинстве случаев), это заголовок, меню, боковая панель, основное содержимое и подвал.
Семантические элементы HTML5 помогают упростить работу с этими частями. Итак давайте рассмотрим какие элементы HTML нам необходимы для создания структуры сайта
1. Основная стандартная структура сайта, которая имеет заголовок страницы и тело страницы:
<!DOCTYPE html> <html> <head> <title> Структура сайта на HTML5 </title> </head> <body> </body> </html>
2. Теперь добавим в тело страницы (внутрь тега BODY) элемент которые будет отвечать за заголовок страницы в новом HTML5 это тег HEADER
<body> <header> <h2>Это структура сайта с использованием семантических тегов HTML5 </h2> </header> </body>
3. Часть HEADER обычно включает в себя часть меню. Меню создается с помощью парного тега NAV
<body> <header> <h2>Это структура сайта с использованием семантических тегов HTML5 </h2> <nav> <ul> <li> <a> Пункт меню 1 </a></li> <li> <a> Пункт меню 2 </a></li> </ul> </nav> </header> </body>
4. Следующий элемент который используется для создания структуры сайта это ARTICLE. Он используется для группировки записей, статей и прочего на странице. В большинстве своем используется для разделения частей сайта на различные блоки. Может содержать внутри себя другие элементы ARTICLE.
<body> <article> <header> <h2>Это структура сайта с использованием семантических тегов HTML5 </h2> <nav> <ul> <li> <a> Пункт меню 1 </a></li> <li> <a> Пункт меню 2 </a></li> </ul> </nav> </article> </header> </body>
5. Далее идет элемент ASIDE, который чаще всего используется для создания боковых колонок на странице сайта, это может быть меню, дополнительная информация и прочее.
<aside> <h4> Рекламные блоки </h3> <p> Какая то реклама </p> </aside>
6. И последний часто используемый элемент это подвал FOOTER. Представляет собой нижнюю часть страницы сайта, обычно эта часть всегда одинакова на всех страницах сайта. Но каждая страницы или статья может иметь свой собственный footer.
<footer> <adress> Ул.Новая д.43, г.Большой </adress> </footer>
Подведя итог можно сделать окончательную структуру сайта на HTML5, который будет иметь следующий вид:
<!DOCTYPE html> <html> <head> <title> Структура сайта на HTML5 </title> </head> <body> <header> <h2>Это структура сайта с использованием семантических тегов HTML5 </h2> <nav> <ul> <li> <a> Пункт меню 1 </a></li> <li> <a> Пункт меню 2 </a></li> </ul> </nav> </header> <aside> <h4> Рекламные блоки </h3> <p> Какая то реклама </p> </aside> <footer> <adress> Ул.Новая д.43, г.Большой </adress> </footer> </body> </html>
Семантическая структура для HTML5 страницы | Бортовой журнал Ктулху
В этой статье описывается структура HTML5 страницы с примером создания.
Заголовок и метатеги
Заголовок HTML5 документа и теги meta в head:
———— CODE ————
<!DOCTYPE html>
<html lang=»en»>
<head>
<meta charset=»UTF-8″>
<title>Заголовок страницы</title>
<meta name=»keywords» content=»Ключевые слова, и, фразы, через, запятую»>
<meta name=»description» content=»Описание контента страницы, 1-2 предложения.»>
</head>
<body>
———— /CODE ————
Тег <meta name=»keywords» content=»»> отвечает за ключевые слова, <meta name=»description» content=»»> — описание страницы. Для SEO оптимизации эти теги обязательны. Также обязательно корректное заполнение тега <title>. Title страницы должен быть уникальным для всего сайта, и содержать в названии всю суть страницы для которой он указан.
В HTML5 появились новые теги, которые используются для того чтобы делать семантическую разметку документа. Это теги header, nav, main, article, aside, footer и т.д. По отображению они работают также как и обычные <div> теги, то есть это блочные элементы. Но если <div> не имеет семантической нагрузки, то header, nav, main и другие — уже нужно использовать только осмысленно.
Заголовок страницы
Шапка страницы оформляется в тег header. Заголовок страницы обязательно пишем тегом h2.
———— CODE ————
<!— Header страницы —>
<header>
<h2>Site title</h2>
</header>
Если у нас есть еще и слоган рядом с заголовком, то помещаем его в p, div или span.
<!— Header страницы —>
<header>
<h2>Site title</h2>
<p>site slogan</p>
</header>
———— /CODE ————
В HTML5 тег h2 используется для указания заголовка контейнера в котором он находится (это может быть header, section, article и т.д.).
До появления HTML5 тегов семантика была несколько другой и отличалась. Так в HTML4 на странице мог быть только один заголовок h2. Как правило это был заголовок статьи или заголовок страницы (например если это страница рубрики на которой отображаются несколько статей.) h3 использовался для подзаголовков, или для разделов главной статьи. h4 для под разделов и так далее.
Спецификация HTML5 устанавливает алгоритм генерации схемы документа, включающий в себя новые семантические теги. Этот алгоритм говорит, что теги <article> и <section> создают новый раздел. А в HTML5 каждый раздел может содержать собственный тег <h2>.
То есть, в верстке HTML5 можно использовать несколько тегов h2, главное, разделять блоки по структуре, например теги h2 помещать в блоки <section>.
Навигация на странице
Оформление главной навигации по сайту должно заключаться в тег nav. Также следует помнить что хорошей практикой считается оформлять навигацию элементами списка.
———— CODE ————
<!— Главная Навигация по сайту —>
<nav>
<ul>
<li><a href=»#»>Home</a></li>
<li><a href=»#»>Portfolio</a></li>
<li><a href=»#»>Gallery</a></li>
<li><a href=»#»>Contacts</a></li>
</ul>
</nav>
———— /CODE ————
Контент на странице
Основное содержимое страницы оформляется в тег main. Это может быть одна статья, или несколько превью статей если речь идет о странице блога с несколькими записями. Нельзя помещать сайдбар, хедер страницы, футер или главную навигацию в тег main!
———— CODE ————
<!— Основное содержимое страниц —>
<main>
…основной контент страницы…
</main>
———— /CODE ————
Оформление статьи
Тег article служит для обертки статей. Тег содержит в себе блок контента, который может быть вынут из контекста страницы, и использован отдельно в другом месте. Это может быть статья (полный тескт статьи или превью), пост на форуме, и т.п.
На примере ниже оформление статьи в контексте, внутри тега main. У статьи задан блок header с заголовком статьи. Дата публикации статьи задана специальным тегом time, который отображается как обычный inline элемент. У тега time есть специальный аттрибут в котором время публикации должно быть задано в машинном формате. Это может быть только дата datetime=»2015-09-30″ или с указанием часов минут и секунд datetime=»2015-09-30T15:25:55″. Параметр pubdate указывает что статья была и опубликована в то же время что и написана. Если это новость, то может быть такое что время новости одно, а время публикации другое, для этого необходимо указать два раза тег time, и поставить pubdate только в том теге где указано время публикации.
———— CODE ————
<main>
…
<!— Статья —>
<article>
<!— Шапка статьи если в шапке у нас больше чем заголовок —>
<header>
<!— Заголовок статьи —>
<h2>Article title</h2>
<!— Дата публикации статьи —>
<time datetime=»2015-09-30T15:25:55″ pubdate>30 Сентября</time>
</header>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nemo quisquam, soluta sunt, aliquam voluptatem voluptates! Deserunt repudiandae aperiam pariatur sit harum at a, quo, est neque. Adipisci beatae eaque unde?</p>
<!— Подзаголовок страницы —>
<h3>Article sub-title</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nemo quisquam, soluta sunt, aliquam voluptatem voluptates! Deserunt repudiandae aperiam pariatur sit harum at a, quo, est neque. Adipisci beatae eaque unde?</p>
<footer>
<a href=»#»>Читать далее</a>
<a href=»#»>Комментарии</a>
</footer>
</article>
…
</main>
———— /CODE ————
Из примера выше видна что внутри статьи были использованы теги header и footer чтобы выделить заголовок и нижний колонтитул статьи.
Боковой блок
Для каждого отдельного элемента сайдбара используем блок aside. Внутри него заголовок оформляем тегом h2. Так колонка с сайдбаром может выглядеть следующим образом:
———— CODE ————
<!— Боковой блок —>
<div>
<!— Виджет в сайдбаре —>
<aside>
<h2>Widget title</h2>
…
</aside>
<!— Виджет в сайдбаре —>
<aside>
<h2>Последние записи</h2>
…
</aside>
<!— Виджет в сайдбаре —>
<aside>
<h2>Популярные комментарии</h2>
…
</aside>
</div>
———— /CODE ————
Тег section
Тег section — используется для представления группы или секции тематически связанного контента. Его использование похоже на article с главным отличием в том что допускается отсутствие смысла содержимого внутри элемента <section> вне контекста самой страницы. Рекомендуется использовать теги (<h2> – <h6>) для обозначения темы секции.
В качестве примера можно привести статью, которую вы сейчас читаете, можно было бы каждый параграф обернуть в тег <section>. Например тегом section можно выделять блоки контента на лендинге. Звучит похоже на определение div элемента, который часто используется как контейнер для контента. Разница в том что div не имеет семантического значения, и он не говорит не о чем про контент находящийся внутри него. Тег section, наоборот используется чтобы четко показать что контент внутри него связан по смыслу. Вы можете заменить некоторые свои div теги на section, но всегда отвечайте себе на вопрос: «Этот контент связан между собой или нет?»
Пример использования тега section в списке с перечислением городов:
———— CODE ————
<h2>An Event Apart</h2>
<section>
<header>
<h3>Cities</h3>
</header>
<p>Join us in these cities in 2010.</p>
<section>
<header>
<h4>Seattle</h4>
</header>
<p>Follow the yellow brick road.</p>
</section>
<section>
<header>
<h4>Boston</h4>
</header>
<p>That’s Beantown to its friends.</p>
</section>
<section>
<header>
<h4>Minneapolis</h4>
</header>
<p>It’s so <em>nice</em>.</p>
</section>
</section>
<small>Accommodation not provided.</small>
Подвал сайта — Footer
Подвал сайта оформляется тегом <footer>
<!— Подвал сайта —>
<footer>
<p>© 2015 Rightblog.ru Copyright</p>
</footer>
———— /CODE ————
Сжижено с rightblog.ru и дополнено своими комментариями.
Правильный «скелет» HTML-страницы для сайта, пример по стандарту HTML5
Структура HTML-документа определяет базовый «скелет» для будущего сайта, вариацию которого мы рассмотрим в данном материале. Код выполнен по стандарту HTML5 и кратко изложены основные тезисы элементов. Он подойдет как для начинающего верстальщика в целях разобраться, что собой представляет каркас страницы, так и профессионального вебмастера в качестве быстро используемого шаблона в своих работах.
Шаблон «скелета» HTML-страницы
Приведем исходный HTML-код с некоторыми дополнительными вставками для дальнейшей визуализации с помощью CSS и JS:
<!DOCTYPE HTML> <html lang="ru"> <head> <meta charset="UTF-8"> <title>Название страницы</title> <meta name="description" content="Описание страницы" /> <link rel="stylesheet" type="text/css" href="/assets/css/style.css" /> <link rel="icon" href="/img/favicon.png"> <script type="text/javascript" src="https://code.jquery.com/jquery-latest.min.js"></script> <!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> </head> <body> <header> Шапка <nav> Навигация </nav> </header> <main> <section> <h2>Заголовок страницы</h2> Основная часть </section> </main> <aside> Боковая колонка (сайдбар) </aside> <footer> Подвал </footer> </body> </html>
В полученном шаблоне наш «скелет», при условии что файл стилей (style.css) составлен верно, преобразуется в страницу такого типа:
Теги и атрибуты
Разберем основные теги и атрибуты, примененные в примере:
- <!DOCTYPE HTML> – указание браузеру, как интерпретировать данную страницу, к какой версии принадлежит HTML-документ. В нашем случае подразумевается стандарт HTML5.
- <html lang=”ru”> – контейнер для всего содержимого страницы с указанием принадлежности сайта к конкретному языку.
- <head> – технический контейнер, направленный на составление информации о странице, подключения стилей и скриптов.
- <meta charset=”UTF-8″> – кодировка сайта.
- <title> – название страницы. Придерживайтесь правильного заполнения тега Title.
- <meta name=”description” content=”” /> – мета-описание документа. Опять же, существуют некоторые правила грамотного заполнения метаданных.
- <link rel=”stylesheet” type=”text/css” href=”” /> – подключение файла каскадных таблиц стилей (CSS) для стилизации и оформления элементов.
- <link rel=”icon” href=””> – иконка сайта, отображаемая в браузере.
- <script type=”text/javascript” src=””> – подключение внешней библиотеки JQuery последней версии.
- <!–[if lt IE 9]><script src=””> – условие, при котором посетитель, зашедший с браузера Internet Explorer 9, получит поддержку новым тегам, описанным в HTML5.
- <body> – тело документа, включающее теги, атрибуты, текст и изображения. Отображается в браузере.
- <header> – шапка сайта.
- <nav> – навигация по ресурсу непосредственно в шапке. Может быть также использован как в aside, так и в footer.
- <main> – основной контент документа.
- <section> – секция для одного типа содержания. Допустимо наличие несколько одноименных тегов.
- <h2> – заголовок страницы.
- <aside> – боковая колонка, также именуемая как «сайдбар».
- <footer> – подвал сайта.
Старайтесь верстать «чистый» код, без дополнительного мусора. Спасибо за внимание.
2,337 просмотров всего, 1 просмотров сегодня
Основы структуры страницы HTML5 — SitePoint
Ниже приводится отрывок из нашей книги «HTML5 и CSS3 для реального мира, 2-е издание», написанной Алексисом Гольдштейном, Луи Лазарисом и Эстель Вейл. Копии продаются в магазинах по всему миру, или вы можете купить их в виде электронной книги здесь.
Теперь, когда мы разобрались с основами нашего шаблона, давайте добавим немного мяса к костям и придадим нашей странице некоторую структуру.
Позже в этой книге мы собираемся конкретно заняться добавлением функций CSS3 и других полезных свойств HTML5; А пока мы рассмотрим, какие элементы мы хотим использовать при создании общего макета нашего сайта.В этом разделе и в следующих главах мы будем много говорить о семантике. Когда мы используем термин «семантика», мы имеем в виду то, как данный HTML-элемент описывает значение своего содержания.
Если вы посмотрите на снимок экрана The HTML5 Herald (или просмотрите сайт в Интернете), вы увидите, что он разделен следующим образом:
заголовок раздела с логотипом и заголовком
панель навигации
основной текст разделен на три столбца
статей и рекламных блоков в столбцах
- Нижний колонтитул
, содержащий информацию об авторе и авторских правах
Прежде чем мы решим, какие элементы подходят для этих различных частей нашей страницы, давайте рассмотрим некоторые из наших вариантов.Прежде всего, мы познакомим вас с некоторыми новыми семантическими элементами HTML5, которые можно использовать, чтобы помочь разделить нашу страницу и добавить больше смысла в структуру нашего документа.
Заголовок
Элемент
Естественно, первый элемент, который мы рассмотрим, — это элемент header
. В спецификации он кратко описывается как «группа вводных или навигационных средств».
Вопреки тому, что вы обычно думаете, вы можете включить новый элемент заголовка, чтобы представить каждый раздел вашего контента.Он зарезервирован не только для заголовка страницы (который обычно можно пометить как
section
, описанным в следующей части; технически мы имеем в виду то, что HTML5 называет «секционированием контента». Это означает, что любой фрагмент контента, которому может потребоваться собственный заголовок, даже если это означает, что на одной странице есть несколько таких фрагментов. Заголовок Элемент
может использоваться для включения вводного содержания или средств навигации, которые относятся к любому отдельному разделу страницы, или применяются ко всей странице, либо к обоим.
Хотя элемент заголовка
часто помещается вверху страницы или раздела, его определение не зависит от его положения. Макет вашего сайта может требовать, чтобы заголовок статьи или сообщения в блоге располагался слева, справа или даже под содержанием; независимо от того, вы все равно можете использовать заголовок
для описания этого содержимого.
Раздел
Элемент
Следующий элемент, с которым вам следует ознакомиться, — это элемент section HTML5.Спецификация определяет раздел
следующим образом:
Раздел
Элемент
представляет собой общий раздел документа или приложения. Раздел в этом контексте представляет собой тематическую группу контента, обычно с заголовком.
Далее объясняется, что раздел
не следует использовать в качестве универсального контейнера, который существует только для целей стилизации или создания сценариев. Если вы не можете использовать раздел
в качестве универсального контейнера, например, для достижения желаемого макета CSS, что вам следует использовать? Наш старый друг, элемент div
, который семантически бессмыслен.
Возвращаясь к определению из спецификации, содержимое элемента section
должно быть «тематическим», поэтому было бы неправильно использовать его в общем виде для обертывания несвязанных частей содержимого.
Примеры допустимого использования элементов section
:
отдельные разделы интерфейса с вкладками
сегмента страницы «О программе»; например, страница компании «О компании» может включать разделы, посвященные истории компании, ее миссии и команде
.
различных частей длинного «условия обслуживания», страница
различных разделов новостного онлайн-сайта; например, статьи можно сгруппировать в разделы, посвященные спорту, мировым событиям и экономическим новостям
Примечание: Использование раздела
правильно
Каждый раз, когда веб-дизайнерам предоставляется новая семантическая разметка, будут возникать дебаты о том, что составляет правильное использование этих элементов, какова была цель спецификации и так далее.Возможно, вы помните обсуждения о правильном использовании элемента dl
в предыдущих спецификациях HTML. Неудивительно, что HTML5 не застрахован от этого явления, особенно когда речь идет об элементе section
. Даже Брюс Лоусон, уважаемый специалист в области HTML5, признал, что в прошлом неправильно использовал раздел
. Для некоторой ясности стоит прочитать сообщение Брюса, в котором объясняется его ошибка.
Вкратце:
раздел
— это общий , поэтому, если подходит более конкретный семантический элемент (например,статья
,помимо
илиnav
), используйте его.раздел
имеет смысловое значение ; это означает, что содержание, которое он содержит, каким-то образом связано. Если вы не можете лаконично описать весь контент, который вы пытаетесь поместить в разделdiv
.
Тем не менее, как всегда бывает с семантикой, в некоторых случаях она открыта для интерпретации. Если вы чувствуете, что можете обосновать, почему вы используете именно один элемент, а не другой, дерзайте.В том маловероятном случае, если кто-нибудь когда-либо вас обратится к вам, итоговое обсуждение может быть как интересным, так и обогащающим для всех участников и даже может способствовать пониманию спецификации широким сообществом.
Имейте в виду, что вам разрешено вкладывать элементы section
в существующие элементы section
, если это уместно. Например, для веб-сайта онлайн-новостей раздел мировых новостей может быть дополнительно разделен на разделы для каждого крупного глобального региона.
Артикул
Элемент
Элемент article
аналогичен элементу section
, но есть некоторые заметные отличия. Вот определение согласно спецификации:
Элемент article представляет собой полную или автономную композицию в документе, странице, приложении или сайте и, в принципе, может независимо распространяться или повторно использоваться, например в синдикации.
Ключевые термины в этом определении — автономная композиция и независимо распространяемая .В то время как раздел
может содержать любой контент, который может быть тематически сгруппирован, статья
должна быть отдельным фрагментом контента, который может стоять сам по себе. Это различие может быть трудным для понимания, поэтому, если вы сомневаетесь, попробуйте тест синдикации: если часть контента может быть повторно опубликована на другом сайте без изменения, или если ее можно отправить как обновление через RSS, или на сайтах социальных сетей, таких как Twitter или Facebook, он имеет задатки статьи
.
В конечном счете, вам решать, что представляет собой статья, но вот несколько предложений в соответствии с рекомендациями в спецификации:
Наконец, как и элементы section
, элементы article
могут быть вложены в другие элементы article
. Вы также можете вложить секцию
в статью
и наоборот. Все зависит от контента, который вы размечаете.
nav
Элемент
Можно с уверенностью предположить, что элемент nav
появится практически в каждом проекте. nav
представляет именно то, что подразумевает: группу навигационных ссылок. Хотя чаще всего nav
используется для упаковки неупорядоченного списка ссылок, существуют и другие варианты. Например, вы можете обернуть элемент nav
вокруг абзаца текста, содержащего основные навигационные ссылки для страницы или раздела страницы.
В любом случае элемент nav
должен быть зарезервирован для навигации, которая имеет первостепенное значение. Поэтому рекомендуется избегать использования nav
для краткого списка ссылок, например, в нижнем колонтитуле.
Примечание. Пропустить навигационные ссылки
Паттерн проектирования, который вы, возможно, видели реализованным на многих сайтах, — это ссылка «пропустить навигацию». Идея состоит в том, чтобы позволить пользователям программ чтения с экрана быстро пропустить основную навигацию вашего сайта, если они ее уже слышали — в конце концов, нет смысла прослушивать все навигационное меню большого сайта каждый раз, когда вы переходите на новую страницу! Элемент nav
может устранить эту потребность; если программа чтения с экрана видит элемент nav
, она может позволить своим пользователям пропустить навигацию без необходимости дополнительной ссылки.В спецификации говорится: «Пользовательские агенты (например, программы чтения с экрана), которые нацелены на пользователей, которые могут извлечь выгоду из исключения навигационной информации при первоначальном рендеринге или которые могут извлечь выгоду из немедленной доступности навигационной информации, могут использовать этот элемент как способ определить, какой контент на странице изначально пропустить или предоставить по запросу (или и то, и другое) ».
Хотя на момент написания этой статьи не все вспомогательные устройства распознают nav
, теперь, следуя стандартам, вы гарантируете, что по мере совершенствования программ чтения с экрана ваша страница со временем станет более доступной.
Примечание. Агенты пользователя
Вы часто будете сталкиваться с термином «агент пользователя» при просмотре спецификаций. На самом деле, это просто причудливый термин для браузера — программный «агент», который пользователь использует для доступа к содержимому страницы. Причина, по которой в спецификациях не говорится просто «браузер», заключается в том, что пользовательские агенты могут включать программы чтения с экрана или любые другие технологические средства для чтения веб-страниц.
Вы можете использовать nav
более одного раза на данной странице. Если у вас есть основная панель навигации для сайта, для этого потребуется элемент nav
.Кроме того, если у вас был вторичный набор ссылок, указывающих на разные части текущей страницы (с использованием якорей на странице или «локальных» ссылок), его тоже можно было бы обернуть в элемент nav
.
Как и в случае с раздел
, были некоторые споры о том, что составляет допустимое использование nav
и почему его не рекомендуется использовать в некоторых случаях (например, в нижнем колонтитуле). Некоторые разработчики считают, что этот элемент подходит для нумерации страниц или ссылок на хлебные крошки или для формы поиска, которая представляет собой основное средство навигации по сайту (как в случае с Google).
Это решение, в конечном счете, зависит от вас, как разработчика. Ян Хиксон, главный редактор спецификации HTML5 WHATWG, ответил на вопрос напрямую: «используйте [it] всякий раз, когда вы использовали бы class = nav».
в сторону
Элемент
Этот элемент представляет собой часть страницы, которая «косвенно связана с контентом вокруг элемента помимо
и может считаться отдельной от этого контента».
Элемент aside
может использоваться для обертывания части контента, касательной к:
— отдельная отдельная часть контента (например, статья
целую страницу или документ, как это обычно делается при добавлении боковой панели на страницу или веб-сайт.
Элемент aside
никогда не должен использоваться для переноса разделов страницы, которые являются частью основного содержимого; другими словами, помимо
не следует вводить в скобки. Контент помимо
может стоять сам по себе, но он все равно должен быть частью большего целого.
Некоторые возможные варианты использования помимо
включают боковую панель, дополнительный список ссылок или блок рекламы.Следует также отметить, что элемент aside
(как в случае заголовка
) не определяется его положением на странице. Это могло быть на стороне или где-то еще. Его определяет само содержание и его отношение к другим элементам.
Нижний колонтитул
Элемент
Последний элемент, который мы обсудим в этой главе, — это элемент нижний колонтитул
. Как и в случае с заголовком
, у вас может быть несколько элементов нижний колонтитул
на одной странице, и вы должны использовать нижний колонтитул
вместо чего-то общего, например
Элемент нижнего колонтитула, согласно спецификации, представляет нижний колонтитул для раздела содержимого, который является его ближайшим предком. Раздел содержимого может представлять собой весь документ или это может быть раздел
, статья
или помимо элемента
.
Часто нижний колонтитул
содержит информацию об авторских правах, списки связанных ссылок, информацию об авторе и аналогичную информацию, которую вы обычно думаете как находящуюся в конце блока контента; однако, как и , кроме
и заголовок
, элемент нижнего колонтитула не определяется с точки зрения его положения на странице, поэтому он не должен появляться в конце раздела или внизу страницы.Скорее всего, будет, но это не обязательно. Например, информация об авторе сообщения в блоге может отображаться над сообщением, а не под ним, и по-прежнему будет считаться информацией нижнего колонтитула.
Примечание: как мы сюда попали?
Если вас немного интересует путь к HTML5 и то, как мы закончили с тегами, которые мы сделали, вы можете проверить книгу Люка Стивенса под названием The Truth about HTML5 . В настоящее время во втором издании книга Луки вызывает споры.Помимо освещения многих технологий HTML5, таких как видео и холст, он также подробно описывает историю HTML5, объясняя некоторые семантические проблемы и проблемы доступности, присущие новым элементам, и дает некоторые рекомендации о том, как их использовать. справиться с этими проблемами.
Введение в структурные элементы HTML5
Сью Смит
HTML5 привносит повышенный уровень смысла в разметку веб-страниц, но вам не нужно обращаться к словарю, чтобы воспользоваться этим!
По мере того, как вы узнаете о HTML5 и о несколько ином подходе к веб-разработке, который он привносит, логичным будет начать с новых структурных элементов.Хотя набор функций HTML5 в целом может показаться немного пугающим, эти новые элементы на самом деле не так уж сложно понять. В этой статье мы рассмотрим концептуальные и практические основы header
, footer
, section
, article
, nav
и помимо элементов
. HTML5 считается более значимым, чем предыдущие версии языка разметки, поэтому мы будем касаться семантических аспектов этих новых элементов по ходу дела.
Создание страницы HTML5
Давайте исследуем новые элементы, создав образец страницы. Посетите демонстрационную страницу, чтобы увидеть, над чем мы работаем — в нее добавлены некоторые дополнительные примечания, чтобы сделать структуру страницы немного более понятной, и вы можете просмотреть и поэкспериментировать с источником страницы здесь. Вы захотите оставить демонстрацию открытой, чтобы следить за учебником.
Начните с создания нового документа HTML5 следующим образом:
Демо HTML5
Обратите внимание, что первая строка, тип документа HTML5, требуется при использовании новых элементов HTML5.(Не знакомы с doctypes? Вы можете узнать больше в этой статье.)
В этой статье мы не будем тратить много времени на стилизацию, но важно добавить следующие два объявления в раздел CSS