Структура правильного 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>
Данная статья не претендует на полноту раскрытия темы, а лишь приоткрывает некоторые ее аспекты. Надеюсь что она будет полезна начинающим и колеблющимся.
Войти
RSS-подписка
Читать в ЖЖ
Яndex-Лента
В Google Reader
(проголосовали: 12, рейтинг: 4.17 из 5)
Ещё считается что вроде как использование strong скажем вместо b будет уместнее с т.з. выделения кейвордов для поисковых машин… правда подтверждений этому я в итоге так нигде и не видел, как и соответствующих экспериментов…
Комментарий by ACID Jesus — Январь 30, 2008 @ 4:53 pm | Цитировать
Ну начнем с того, что b является нежелательным элементом по стандарту xhtml, а это уже само по себе о чем-то да говорит. Так что очень может быть что и поисковики кушают стронг охотнее.
Комментарий by neutrino — Январь 30, 2008 @ 5:02 pm | Цитировать
Тэг strong заключает в себе смысл сильного выделения. Смысл b — тупо жирный текст.
Вообще отличная статья. Как говорится, must read для новичков и скептиков в отношение семантики.
Комментарий by Nikita — Январь 30, 2008 @ 5:17 pm | Цитировать
Спасибо…хоть тэги потихоньку запоминать начал)
Хоть и с CMS работаю, а без аштиэмэмль все равно сложно…
Комментарий by Блессинг — Январь 31, 2008 @ 4:35 am | Цитировать
а у меня на дивах не получаеться верстать, вообще не получаеться, посоветуйте чо почитать, лучше онлайн с примерами для чайников. заранее благодарен!
Комментарий by zealot_e — Январь 31, 2008 @ 10:08 am | Цитировать
zealot_e, найдите “Каскадные таблицы стилей” Эрика Майера, “Философия CSS-дизайна” Дэйва Ши, “Вебдизайн по стандартам” Джеффри Зельдмана.
Ознакомьтесь со ВСЕМИ статьями, приведенными по ссылке.
Да и не только с ними, все сайты, присутствующие там, заслуживают пристального изучения.
Комментарий by neutrino — Январь 31, 2008 @ 10:22 am | Цитировать
спасибо!
Комментарий by zealot_e — Январь 31, 2008 @ 10:28 am | Цитировать
Кстати, мне давно не хватало статьи о семантике на русском для моего “учебника”. Спасибо большое!
Комментарий by uggallery — Январь 31, 2008 @ 5:31 pm | Цитировать
Чем не нравится верстка на таблицах … так и не понял. Смотрю, на google, табличная верстка…
Смотрю на yandex…. Табличная верстка…. Смотрю на Artlebedev.ru … табличная верстка. Почему они на таблицах сделаны? А потому –что так быстрее, ефективнее и работает везде. А пока IE не поддерживает display: table-cell , например … нет смысла обсуждать другие варианты. Конечно можно и без таблиц- но теряется время и силы. А что поисковики индексируют лучше сайты без таблиц … это полный бред. Короче если думаете что вы круче верстальщиков вышеупомянутых сайтах, ищите всякие заковыретсые методы безтабличной верстки. Только потеряете само время.
Комментарий by bobrob — Февраль 1, 2008 @ 3:45 pm | Цитировать
И тебе, что добавил
Комментарий by neutrino — Февраль 1, 2008 @ 11:52 pm | Цитировать
Хорошо, поставили мне минус, обясните почему ?
Комментарий by bobrob — Февраль 2, 2008 @ 1:40 pm | Цитировать
Автор, у вас поле “Сайт” вправо съезжает, или так задумано?
Комментарий by BinaryClaw — Февраль 6, 2008 @ 7:34 am | Цитировать
Сорри… Хотел Откоментировать не разобралси
Так вот Премного уважаемый “by bobrob” Про таблицы… А сколько времени у вас уйдет на ре дизайн сайта с табличной вёрсткой?
Я думаю ровно столько чтоб сверстать новый сайт..
Мне лично на div’ах необходимо лишь отредактировать css файл. Причём как глобальный ре дизайн так и перенос поля на 15px в сторону
Комментарий by colisey — Март 13, 2008 @ 4:06 pm | Цитировать