Структура HTML

Так, блог ведь о дизайне, вёрстке и фотографии. О фотографии есть, о дизайне совсем мало, о вёрстке вообще ничего. :) Исправляемся!

Структура HTML

За всё время моей «карьеры верстальщика» у меня накопилось огромное количество велосипедов сниппетов, хаков и всяческих идей. Решил посвятить им несколько «статей». Вообще, в интернетах по данной тематике можно найти очень много информации. Но большинство того, что выдают поисковики устарело.

Начинаю я обычно с написания HTML-кода, и только потом приступаю к написанию CSS-стилей.

Заголовок HTML

Где-то эдак с 2005-го года я в доктайпе начал указывать XHTML 1.0 Strict вместо HTML 4.0 Transitional и писать код, соответствующий правилам разметки для этого доктайпа:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
  4. <head>
  5. <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  6. <title>Заголовок</title>
  7. <link href="style.css" rel="stylesheet" media="all" />
  8. <script type="text/javascript" src="/jquery.min.js"></script>
  9. <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
  10. </head>
  11. <body>
  12. </body>
  13. </html>

Тег <html> 03 должен содержать атрибут xmlns с указанием URI адреса описания пространства имён XHTML. Также этот элемент может иметь атрибуты xml:lang и lang с указанием языка содержимого документа.

Кодировка 05 объявляется до тега <title> 06, по причине того, что многие браузеры отображают содержимое тега в заголовке окна, не успев определить кодировку.

Также и CSS-стили 07 объявляются раньше JavaScript-кода <title> 08, так как старые браузеры, IE и Opera блокируют все последующие запросы, пока не загрузятся и не распарсятся все скрипты.

jQuery 08 присутствует почти на всех сайтах, которыми я сейчас занимаюсь.

Иконка 09 является обязательным атрибутом современного сайта.

Многие задают вопросы, зачем писать эти xmlns, xml:lang (да и ещё дублировать его lang-ом), и подобные «ненужные» атрибуты, ведь без них всё так же работает, только место занимают. В принципе, действительно, можно не писать. Начинать привыкать к новой спецификации HTML5, по которой минимальный валидный документ может выглядеть так:

  1. <!DOCTYPE html><title></title>

Для сравнения, минимальный XHTML-документ должен выглядеть так:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
  4. <head>
  5. <title></title>
  6. </head>
  7. <body>
  8. </body>
  9. </html>

Однако. Ощутимая разница. :D

Но стандарт есть стандарт, написали в доктайпе Strict, значит «строго» следуйте стандарту! :)

Содержимое <body>

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

Типичное содержимое тега <body>, подходящее для большинства сайтов с шапкой, меню и боковой панелькой (схематически):

  1. div#wrap
  2. div#wrap-inner
  3. div#header
  4. div#logo
  5. div#nav
  6. div#content
  7. div.entry
  8. div#aside
  9. div.widget
  10. div#extra
  11. div#footer
  12. div.copyright

Ещё часто бывает так (кстати, в этом блоге примерно такая структура):

  1. div#header
  2. div#header-inner
  3. div#logo
  4. div#nav
  5. div#wrap
  6. div#wrap-inner
  7. div#content
  8. div#.entry
  9. div#aside
  10. div#.widget
  11. div#extra
  12. div#foter
  13. div#footer-inner
  14. div.copyright

После закрывающего тега длинного блока часто ставлю комментарий <!-- /#wrap --> («#» после слеша если дальше идёт ID и «.» — если class).

Именование элементов, приведённое в статье имеет непосредственное отношение к семантике, о которой следующая статья.

UPD. В моей вики появилась страница с описанием моего Code Style в HTML.

Написать комментарий

*


?

Вы можете использовать следующие HTML теги: <a href=""> <b> <blockquote cite=""> <cite> <code> <del> <em> <i> <q cite=""> <strike> <strong>