Один из типов содержимого, насчитывающий много новых элементов HTML5, отвечает за разбивку документа на отдельные части. В HTML5 для описания содержимого элементов определена новая, семантическая разметка.
Использование семантической разметки не предоставляет никаких мгновенных преимуществ, но значительно облегчает верстку HTML-страниц, и, безусловно, в будущем поисковые системы воспользуются преимуществами этих элементов при организации поиска и индексирования страниц.
Как уже отмечалось, при разработке HTML5 сделана попытка максимально учесть предыдущий опыт использования HTML. Компания Google проанализировала миллионы страниц в поиске общих идентификаторов имен в дескрипторах DIV и обнаружила огромное количество повторений. Например, для разметки нижнего колонтитула страниц многие разработчики используют в элементе DIV атрибут id="footer". Для создания различных частей документа HTML5 предоставляет новый набор элементов, который в современных браузерах можно использовать уже сегодня. Различные элементы семантической разметки приведены в табл. 1.2.
Элемент секционирования | Описание |
header | Содержимое верхней (начальной) части страницы или ее секции |
footer | Содержимое нижней (завершающей) части страницы или ее секции |
section | Секция веб-страницы |
article | Содержимое внешней статьи |
aside | Связанное содержимое или выдержка |
nav | Навигационные ссылки |
Ко всем перечисленным элементам могут применяться стили CSS. Фактически, как уже отмечалось, когда мы рассматривали применение принципа полезности при проектировании веб-страниц, HTML5 поощряет разделение представления и содержимого, поэтому для стилевого оформления страниц HTML5 следует всегда использовать CSS.
Пример разметки страницы HTML5 показан в листинге 1.1. Здесь используются новые объявления типа документа и кодировки, а также новые семантические элементы гипертекстовой разметки — проще говоря, новое содержимое, обеспечивающее разбиение документа на различные разделы. Файл с этим кодом находится в папке code/intro.
Листинг 1.1. Пример страницы HTML5
<!DOCTYPE html> <html> <head> <meta charset»"utf-8" /> <title>HTML5</title> clink rel="stylesheet" href="/html5.css"> </head> <body> <header> <hl>Header</hl> <h2>Subtitle</h2> <h4 >HTML5 Rocks!</h4> </header> <div id="container"> <nav> <h3>Nav</h3> <a href-"">Link l</a> <a href="/">Link 2</a> <a href="/">Link 3</a> <a href«"">Link 4</a> <a href-"">Link 5</a> </nav> <section> <article> <header> <hl>Article Header</hl> </header> <p>Lorem ipsum dolor HTML5 nunc aut nunquam sit amet, consectetur adipiscing elit. Vivamus at est eros, vel fringilla urna.</p> <p>Per inceptos himenaeos. Quisque feugiat, justo at vehicula pellentesque, turpis lorem dictum nunc.</p> <footer> <h2>Article Footer</h2> </footer> </article> <article> <header> <hl>Article Header</hl> </header> <p>HTML5: "Lorem ipsum dolor nunc aut nunquam sit amet, consectetur adipiscing elit. Vivamus at est eros, vel fringilla urna Pellentesque odio</p> <footer> <h2>Article Footer</h2> </footer></article> </section> <aside> <h3>Aside</h3> <p>HTML5: "Lorem ipsum dolor nunc aut nunquam sit amet, consectetur adipiscing elit. Vivamus at est eros, vel fringilla urna. Pellentesque odio rhoncus</p> </aside> <footer> <h2>Footer</h2> </footer> </div> </body>
Без применения стилей страница выглядела бы довольно скучно. В листинге 1.1 приведен CSS-код, который может быть использован для стилевого оформления содержимого. Обратите внимание, что в таблице стилей используются новые элементы CSS3, например скругленные углы (border-radius) и поворотные преобразования (transform: rotate О ;). Следует отметить, что спецификация CSS3, как и сама спецификация HTML5, все еще находится в стадии разработки, и из нее выделяются отдельные модули вспомогательных спецификаций, что упрощает оперативное использование браузерами тех ее частей, которые более или менее близки к завершению (например, преобразования, анимация и переходы выделены во вспомогательные спецификации).
Чтобы избежать возникновения конфликтов имен при возможных последующих изменениях спецификации, экспериментальные средства CSS3 снабжаются префиксом в виде строки, идентифицирующей производителя браузера. В настоящее время для отображения скругленных углов, градиентов, теней и преобразований необходимо использовать в объявлениях такие префиксы, как -moz- (для браузеров Mozilla), о- (для браузеров Opera) и -webkit-(wiH WebKit-браузеров, таких как Safari и Chrome).
Листинг 1.2. CSS-файл для страницы HTML5
body { background-color:#CCCCCC; font-family:Geneva,Arial,Helvet ica,sans-serif; margin: Opx auto; max-width:90Opx; border:solid; border-color:#FFFFFF; } header { background-color: #F47D31; display:block; color:#FFFFFF; text-align:center; } header h2 { margin: Opx; } hi { font-size: 72px; margin: Opx; } h2 { font-size: 24px; margin: Opx; text-align:center; color: #F4 7D31; } h3 { font-size: 18px; margin: Opx; text-align:center; color: #F47D31; } h4 { color: #F47D31; background-color: #fff; -webkit-box-shadow: 2px 2px 20px #888; -webkit-transform: rotate(-45deg); -moz-box-shadow: 2px 2px 20px #888; -moz-transform: rotate(-45deg); position: absolute; padding: Opx 150px; top: 50px; left: -120px; text-align:center; nav { display:block; width:25%; float:left; } nav a:link, nav a:visited { display: block; border-bottom: 3px solid #fff; padding: 10px; text-decoration: none; font-weight: bold; margin: 5px; } nav a:hover { color: white; background-color: #F47D31; } nav h3 { margin: 15px; color: white; } #container { background-color: #888; } section { display:block; width:50%; float:left; } article { background-color: #eee; display:block; margin: 10px; padding: lOpx; -webkit-border-radius: 10px; -moz-border-radius: 10px; border-radius: lOpx; } article header { -webkit-border-radius: lOpx; -moz-border-radius: lOpx; border-radius: lOpx; padding: 5px; article footer { -webkit-border-radius: lOpx; -moz-border-radius: lOpx; border-radius: lOpx; padding: 5px; } article hi { font-size: 18px; } aside { display:block; width:25%; float:left; } aside h3 { margin: 15px; color: white; } aside p { margin: 15px; color: white; font-weight: bold; font-style: italic; } footer { clear: both; display: block; background-color: #F47D31; color:#FFFFFF; text-align:center; padding: 15px; } footer h2 { font-size: 14px; color: white; } /* links */ a { color: #F47D31; ) a:hover { text-decoration: underline; }
На рис. 1.2 показан пример страницы из листинга 1.1, к которой применены стили CSS (и некоторые стили CSS3). Имейте, однако, в виду, что такого понятия, как "типичная страница HTML5", не существует. На самом деле страница может быть любой, и новые дескрипторы используются в данном примере главным образом в иллюстративных целях.
Наконец, заметим, что у вас могло сложиться ложное впечатление, будто браузеры визуализируют содержимое так, как если бы они действительно понимали семантический смысл новых элементов. Истина же состоит в том. что если бы мы назвали эти элементы как-то иначе, например f оо и bar, но применили к ним те же стили, то они были бы визуализированы точно так же (хотя, безусловно, при этом были бы потеряны все преимущества в плане оптимизации работы поисковых систем). Единственным исключением является браузер Internet Explorer, который требует, чтобы элементы были частью DOM. Поэтому, если вы хотите увидеть эти элементы в Internet Explorer, их следует программным путем вставить в DOM и отобразить в виде блочных элементов.