Расставив все точки над семантикой
Часть 1. Теория.Семантика — наука о понимании определенных знаков, последовательностей символов и других условных обозначений. В данный момент мы говорим о семантике в HTML-верстке. Поэтому заведомо не будем проводить все ее связи с лингвистикой. Прежде всего, семантика в верстке — это совокупность смысловых отношений, возникающих в документе. Однако для существования таких отношений необходим документ, который возникает благодаря внедрению HTML-разметкив простой текст. Семантика невозможна без валидности, несмотря на явную разность этих двух понятий. Вы можете сверстать валидный сайт, но без структурной разметки это будет всего лишь популизм. Так же семантика невозможна без внедрения в код микроформатов. Микроформаты — это способ внедрения специфических семантических данных в HTML. Но, стоп, это не все. Стоит заведомо сказать, что семантика как таковая делится на три раздела, которые все три стоит учитывать:
Вывод части: Поэтому, для тех, кто в танке, давайте прежде, чем выкладывать свои коды, все таки думать. Часть 2. Перед практикой.То, с чего должна начинаться верстка, это с указания правильного DOCTYPE`а. Согласно спецификациям HTML и XHTML DOCTYPE (что означает «объявление типа документа») сообщает валидатору, какую именно версию (X)HTML вы используете в своей странице. Он должен всегда находиться в первой строке каждой страницы. DOCTYPE — ключевой компонент web-страниц, претендующих на соответствие стандартам. Все подробности уже давно бережно описаны Джеффри Зельдмана в переводе Макса Россомахина «Почему так важен DOCTYPE». Часть 3. НачалоТак как мы хотим добиться не только валидной семантическй разметки, но еще и кроссбраузерной, я рекомендую использовать «сброс стилей». Для этого воспользуемся статьей Эрика Мейера или одним из этих вариантов. Итак. Чтобы все таки окончательно убедиться для чего используются те или иные элементы (если вы не уверены ;) необходимо обратиться к спецификации HTML 4.01. Отрывок спецификации о элементе ADDRESS: В добавлении: POSH — Plain Old Semantic HTML (использование HTML-элементов по их назначению), — «старый добрый семантический HTML». Часть 4. Учимся думать.Ну что ж. Давайте приведем пример. Самое просто, что есть это простой неупорядоченный список. Чаще всего это меню сайта. Как можно его сверстать, держа в голове «верстка дивами, именование элементов …». Теперь давайте посмотрим спецификацию и выберем что же наиболее нам подходит для семантически правильного решения данного вопроса. Мы выбираем неупорядоченный список <ul> c элементами списка <li> внутри, а визуальное форматирование — в CSS. Почему мы так решили? Ответ вполне очевиден: в исходном коде у нас есть корневой группирующий элемент, неупорядоченный список пунктов, элементы визуального форматирования. Немного усложним ситуацию и применим все 3 составляющие семантики: В качестве примера возьмем описанный нами элемент ADDRESS. Рассмотрим подробнее, что у нас есть. Есть персона, ее стоит озаглавить, и есть явный адрес. Следовательно, правильно разместим информацию с помощью HTML-элементов: Далее следую пункту два, правильно назовем классы всех элементов: Чем дальше, тем сложнее. Вспомним (ну если не вспомним, то прочитаем) о микроформате hCard. Используем корневой класс, указание имени, фамилии и электронной почты. Итак, мы получили полноценную визитную карточку. И все таки: hCard — это клон старого-доброго vCard, формата электронной визитки, в терминах XHTML. Внедряется бесконечно просто: создается (или изменяется текущий) элемент (обычно div или span) с именем класса vcard (значением атрибута class="vcard"). В нем создаются дочерние элементы с именами классов, соответствующие полям vCard/hCard. На сайте Sphinx.net.ru достаточно подробно описаны другие аспекты введения в микроформаты. Часть 5. Не забудем братьев меньших. IE и его причуды.Думать научились, начинаем действовать. Но вот проблема, в IE все не так как хотелось. Думаем дальше. Есть два выхода из этой ситуации:
Первое — «star html hack». В кратце: Подробности уже давно ждут вас. Но не стоит забывать, что такие хаки для браузера Internet Explorer засоряют код, подгружаемый и всеми остальными браузерами. Второе — conditional comments. Или проще говоря обычное подключение CSS-файлов, но видимое только IE. Опять же, подробности. Часть 6. Долгожданная блочная верстка.И действительно, чего это называется все верстка блоками, а про блоки и не слова. Я не буду описывать здесь что-то подробное, так как не для этого я писал эту обзорную статью, все уже написано до меня. Вот это полезно прочитать:
Часть 7. ID и class.Вначале давайте поймем что такое ID, что такое class. ID — это имя уникального элемента, class — это общее имя множества элементов и, соответственно, их общая семантическая роль. Поэтому, удобнее ID использовать для описания структурной разметки. При именовании важно помнить о множественных классах для одного элемента. Например: Отсюда становится ясно следующее: что эта ссылка ведёт на сайт (url) организации (org) под названием (fn) «Яндекс». Таким образом, применяя id для структурной разметки, мы создаем некие пространства имен, благодаря которым мы можем адресовать применение стилей для элементов с одинаковыми смысловыми ролями и, соответственно, именами классов. Семантически верное именование HTML-элементов при помощи атрибутов id и class, помимо самой семантики, привносит упорядоченность не только в сам документ, а еще и в процесс разработки. Часть 8. Подробнее о микроформатах и комбинации именованных элементов.
Пример использования, написанный Вадимом Макеевым: Разметка имени пользователя и маленькой иконки рядом, который используется в сервисе блогов Livejournal.com. Вот, каким образом это выглядит сейчас: Полезного:
Но что можно сделать с помощью микроформата hCard: Что же нового мы теперь можем узнать:
Соответственно,вся информация из приведенных примеров становится доступна поисковым машинам и плагинам ваших браузеров, поскольку ее разметка формализована в спецификации микроформата hCard. Часть 9. Итак!Давайте все-таки прочитаем оригиналы статей, выучим наизусть и не будем больше заниматься глупостями:
|
СпонсорыСлучайные статьиБлогорол
|
||
|
|||