Главная » (X)HTML - структура и семантика кода

(X)HTML - структура и семантика кода

Структура правильного HTML-документа базируется на логике, порядке и использовании семантически корректной верстки. Если у вас есть заголовок - используйте для него елементы Heading(h1-h6), если абзац/параграф - paragraph(p). Если у вас есть список - используйте элементы списков (ul/ol), если вы цитируете - используте blockquote или cite. Эти элементы придают смысловое значение разметке, делая ее семантически корректной, в дополнение к правильной структуре.

После составления корректного HTML-макета, используйте CSS для визуального оформления. (Тут уже дело вкуса, некоторые верстают CSS “с лету”, а некоторые только после создания HTML-макета)

Стандарт XHTML более строг к синтаксису чем HTML, он не допускает наличия незакрытых тегов, одинарные теги тоже должны быть закрыты (self-closing). Элементы в XHTML прописываются строчными, а не заглавными буквами. Значения атрибутов элементов должны быть указаны в кавычках. Есть и другие отличия, но более подробно я описывать их здесь не буду.
Есть два момента, которые нужно помнить всегда:

  • (X)HTML предназначен для разметки содержимого и только
  • CSS предназначен для визуального оформления содержимого

Почему семантика? Я приведу важные на мой взгляд аспекты:

  • Структурированый код гораздо лучше читается поисковиками
  • Код будет понятен не только автору, но и тем, кто будет работать с ним после него
  • Работа с DOM’ом становится проще и доступнее.

Не стоит путать семантику и валидность. Если документ валиден, это еще не значит что он семантически корректен. Валидатор не знает, к примеру, что вы вместо заголовков использовали жирный шрифт, оформленный в CSS, или же что ваш список ссылок, совсем не список, а параграфы через перенос строки.

Кстати валидность, по моему мнению, относится к минимальным требованиям к коду и является обязательной. И это не дань моде, а порядок и инструмент самопроверки. Но это отдельная тема.

Некоторые основные элементы разметки

Заголовки
Используте элементы h1 - h6 для оформления заголовков документа. Не пытайтесь “подделать” заголовки визуально с помощью CSS, это черевато проблемами с поисковиками.

<h1>Заголовок</h1>
<h2>Подзаголовок</h2>

Абзац/Параграф

Пользуйтесь элементом p для создания абзацев в тексте, не обрывайте строку с помощью br. (И помните, в HTML-документе, не может быть текста, не “обернутого” в теги). Элемент br можно использовать, но надо делать это с умом.Неверно:

Мама мыла раму<br />
Папа курил Приму 

Верно:

<p>Мама мыла раму</p>
<p>Папа курил приму</p>

Выделение текста

em
Используйте элемент em для выделения текста из общего контекста. Если раньше вы использовали для этого элемент i, делающий текст наклонным, то прекратите это, так как в данном случае выделение будет сугубо визуальным, а в случае использования em, еще и логическим.

strong
Элемент strong пришел на замену элементу b. Логика использования примерно та же, что и в em/i, с той лишь разницей, что в данном случае выделение текста будет жирным шрифтом.

Неверно:

Здесь есть <i>выделеное</i> слово 

Верно:

Здесь есть <em>выделеное</em> слово 

Цитирование
Элемент cite хорош для выделения коротких цитат внутри текста, и является строчным элементом.
Элемент blockquote также используется для цитирования, но будет полезен для больших цитат, вынесеных в отдельные блоки. Является блочным элементом.

Примеры:

<p><cite>Девелопер предлагающий крэки, подобен корове, рекламирующей говядину</cite> - Paradigm.ru</p>

Дополнительно, можно использовать атрибут cite элемента blockquote для указания источника цитаты:

<blockquote cite="http://www.w3c.org">The value of this attribute is a URI that designates a source document or message. This attribute is intended to give information about the source from which the quotation was borrowed.</blockquote>

Списки

Если у вас есть списки (к примеру меню - это ничто иное как список ссылок) - используйте элементы списков ul/ol, ненумерованый и нумерованый список соответственно. Оформление списков в CSS позволяет добиться очень впечатлающих результатов.

Неправильно:

<a hrеf="about.html">Обо мне</a><br/>
<а hrеf="services.html">Услуги</a><br/<
<а hrеf="notes.html">Заметки</a><br/>
<а hrеf="grandma.html">Бабушка</a>

Правильно:

<ul>
<li><а hrеf="about.html">Обо мне</a></li>
<li><а hrеf="services.html">Услуги</a></li>
<li><а hrеf="notes.html">Заметки</a></li>
<li><а hrеf="grandma.html">Бабушка</a></li>
</ul>

Определяющие списки

Определяющие списки (dl) созданы для определения чего-либо и его описания. В отличии от обычных списков, в dl изначально указывается dt(definition term) - термин, а затем его описание/я dd(definition description). Определяющие списки подходят для разметки диалогов, страниц ЧаВо, технической документации.

Пример:

<dl>
<dt>Вася:</dt>
<dd>А я все равно буду верстать таблицами!</dd>
<dt>Петя:</dt>
<dd>Ну и дурак!</dd>
</dl>

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



13 Комментариев »

  1. 1  Плюс Минус  +1

    Ещё считается что вроде как использование strong скажем вместо b будет уместнее с т.з. выделения кейвордов для поисковых машин… правда подтверждений этому я в итоге так нигде и не видел, как и соответствующих экспериментов… 8-)

    Комментарий by ACID Jesus — Январь 30, 2008 @ 4:53 pm | Цитировать

  2. 2  Плюс Минус  0

    Ещё считается что вроде как использование strong скажем вместо b будет уместнее с т.з. выделения кейвордов для поисковых машин… правда подтверждений этому я в итоге так нигде и не видел, как и соответствующих экспериментов… 8-)

    Ну начнем с того, что b является нежелательным элементом по стандарту xhtml, а это уже само по себе о чем-то да говорит. Так что очень может быть что и поисковики кушают стронг охотнее.

    Комментарий by neutrino — Январь 30, 2008 @ 5:02 pm | Цитировать

  3. 3  Плюс Минус  +2

    Тэг strong заключает в себе смысл сильного выделения. Смысл b — тупо жирный текст.

    Вообще отличная статья. Как говорится, must read для новичков и скептиков в отношение семантики.

    Комментарий by Nikita — Январь 30, 2008 @ 5:17 pm | Цитировать

  4. 4  Плюс Минус  +1

    Спасибо…хоть тэги потихоньку запоминать начал)
    Хоть и с CMS работаю, а без аштиэмэмль все равно сложно…

    Комментарий by Блессинг — Январь 31, 2008 @ 4:35 am | Цитировать

  5. 5  Плюс Минус  +1

    а у меня на дивах не получаеться верстать, вообще не получаеться, посоветуйте чо почитать, лучше онлайн с примерами для чайников. заранее благодарен!

    Комментарий by zealot_e — Январь 31, 2008 @ 10:08 am | Цитировать

  6. 6  Плюс Минус  +3

    zealot_e, найдите “Каскадные таблицы стилей” Эрика Майера, “Философия CSS-дизайна” Дэйва Ши, “Вебдизайн по стандартам” Джеффри Зельдмана.

    Ознакомьтесь со ВСЕМИ статьями, приведенными по ссылке.
    Да и не только с ними, все сайты, присутствующие там, заслуживают пристального изучения.

    Комментарий by neutrino — Январь 31, 2008 @ 10:22 am | Цитировать

  7. 7  Плюс Минус  +2

    спасибо!

    Комментарий by zealot_e — Январь 31, 2008 @ 10:28 am | Цитировать

  8. 8  Плюс Минус  +3

    Кстати, мне давно не хватало статьи о семантике на русском для моего “учебника”. Спасибо большое!

    Комментарий by uggallery — Январь 31, 2008 @ 5:31 pm | Цитировать

  9. 9  Плюс Минус  —3

    Чем не нравится верстка на таблицах … так и не понял. Смотрю, на google, табличная верстка…
    Смотрю на yandex…. Табличная верстка…. Смотрю на Artlebedev.ru … табличная верстка. Почему они на таблицах сделаны? А потому –что так быстрее, ефективнее и работает везде. А пока IE не поддерживает display: table-cell , например … нет смысла обсуждать другие варианты. Конечно можно и без таблиц- но теряется время и силы. А что поисковики индексируют лучше сайты без таблиц … это полный бред. Короче если думаете что вы круче верстальщиков вышеупомянутых сайтах, ищите всякие заковыретсые методы безтабличной верстки. Только потеряете само время.

    Комментарий by bobrob — Февраль 1, 2008 @ 3:45 pm | Цитировать

  10. 10  Плюс Минус  0

    Кстати, мне давно не хватало статьи о семантике на русском для моего “учебника”. Спасибо большое!

    И тебе, что добавил :)

    Комментарий by neutrino — Февраль 1, 2008 @ 11:52 pm | Цитировать

  11. 11  Плюс Минус  —4

    Хорошо, поставили мне минус, обясните почему ?

    Комментарий by bobrob — Февраль 2, 2008 @ 1:40 pm | Цитировать

  12. 12  Плюс Минус  +1

    Автор, у вас поле “Сайт” вправо съезжает, или так задумано?

    Комментарий by BinaryClaw — Февраль 6, 2008 @ 7:34 am | Цитировать

  13. 13  Плюс Минус  0

    Чем не нравится верстка на таблицах … так и не понял. Смотрю, на google, табличная верстка…
    Смотрю на yandex…. Табличная верстка…. Смотрю на Artlebedev.ru … табличная верстка. Почему они на таблицах сделаны? А потому –что так быстрее, ефективнее и работает везде. А пока IE не поддерживает display: table-cell , например … нет смысла обсуждать другие варианты. Конечно можно и без таблиц- но теряется время и силы. А что поисковики индексируют лучше сайты без таблиц … это полный бред. Короче если думаете что вы круче верстальщиков вышеупомянутых сайтах, ищите всякие заковыретсые методы безтабличной верстки. Только потеряете само время.

    Сорри… Хотел Откоментировать не разобралси :)

    Так вот Премного уважаемый “by bobrob” Про таблицы… А сколько времени у вас уйдет на ре дизайн сайта с табличной вёрсткой?
    Я думаю ровно столько чтоб сверстать новый сайт..
    Мне лично на div’ах необходимо лишь отредактировать css файл. Причём как глобальный ре дизайн так и перенос поля на 15px в сторону :)

    Комментарий by colisey — Март 13, 2008 @ 4:06 pm | Цитировать

Оставить комментарий

XHTML (Разрешенные теги): <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong> .

Если вы хотите вставить в комментарий код, то жмите на кнопку "HTML" в редакторе и используйте теги <pre><code> и </pre></code> для вставки.

Не забывайте о том, что теги, вставленые без использования &lt;/&gt; будут автоматически трансформироваться.

Цитировать отмеченый текст