Автор: Роберт Ньюмэн
Перевод: Всеволод Козлов
Я интересуюсь семантикой вообще, но если семантика приходит на помощь веб-разработчикам с целью помочь им улучшить веб, то таким шансом просто грех не воспользоваться.
Вся проблема кроется в том, что веб-мастера не понимают, что изменится от использования семантической разметки документа.
Именно поэтому я и решил написать эту статью, поясняющую необходимость придерживаться семантики веб-документов.
Что такое семантически правильный документ?
Я думаю, что для веб-разработчика очень важно просматривать созданные ими HTML-документы с отключенным внешним форматированием, будь то CSS, JavaScript и, если хотите, даже без изображений – только контент.
А теперь пробегитесь по этой странице глазами. Вы можете в тексте найти заголовки и важные фразы?
Если ответ положительный, то Ваш документ придерживается семантики.
Использование элементов и примеры грамотной и безграмотной разметки
Итак, давайте поговорим о семантических HTML-элементах. В первую очередь, это элементы заголовков (от <h1> до <h6>), абзаца (<p>), списка (<ul>, <ol>), логического выделения наиболее важных фраз в тексте (<strong> — полужирным, <em> — курсивом), элемент формы, связывающий поле метки LABEL с полем формы (<label>).
Теперь хорошенько обдумайте, как будет наиболее грамотно разметить Ваш контент, и приступайте к делу, используя вышеуказанные элементы.
Теперь мне хотелось бы поговорить о методах верстки: табличной и бестабличной.
Табличная верстка – в основе таблица. Весь контент находится в ячейках этих самых таблиц, код очень трудно воспринимать, особенно когда используются вложенные таблицы. К тому же данный метод в корне неграмотный и устаревший.
При бестабличной же верстке контент находится в элементах семантической разметки с присвоенными css-стилями. Такой метод грамотный и современный! Необходимо разделять семантику документа и его оформление, что мы и получаем при бестабличной верстке.
В таблицах необходимо размещать только соответствующие табличные данные, такие как статистические данные, расписания и т.д.
А теперь давайте я Вам приведу в качестве примера 2 фрагмента кода с табличной и бестабличной разметкой, а Вы их сравните и скажете, какой лучше, проще, легче, элегантнее и понятнее!
Пример табличной верстки (неграмотный подход)
<table id="web-site-container" width="100%">
<tr>
<td id="navigation">
<table width="100%">
<tr>
<td>
<a href="http://www.apple.com/macosx/">Mac OS X Leopard</a>
</td>
</tr>
<tr>
<td>
<a href="http://www.microsoft.com/windows/products/windowsvista/default.mspx">Windows Vista</a>
</td>
</tr>
<tr>
<td>
<a href="http://en.wikipedia.org/wiki/Semantic_Web">Wikipedia: Semantic Web</a>
<table>
<tr>
<td>
<a href="http://www.sciam.com/article.cfm?articleID=00048144-10D2-1C70-84A9809EC588EF21">The Semantic Web article</a>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
<td id="content">
<div class="heading">Web site name/Document name</div>
<!-- Let's a lot of <code><br></code> elements here to get a nice bottom margin -->
<br><br><br><br><br><br>
<div>This is <span style="font-style: italic">the best content</span> text ever written.</div>
<div>
<!-- are great for indenting text! -->
Indented pre-amble text explaining something.
</div>
</td>
<td id="contact-form">
<form action="/contact" method="post">
<div>Name:
<input type="text">
<input type="submit" value="Send">
</div>
</form>
</td>
</tr>
</table>
Пример бестабличной, блочной верстки (грамотный подход)
<div id="web-site-container">
<div id="navigation">
<ul>
<li>
<a href="http://www.apple.com/macosx/">Mac OS X Leopard</a>
</li>
<li>
<a href="http://www.microsoft.com/windows/products/windowsvista/default.mspx">Windows Vista</a>
</li>
<li>
<a href="http://en.wikipedia.org/wiki/Semantic_Web">Wikipedia: Semantic Web</a>
<ul>
<li>
<a href="http://www.sciam.com/article.cfm?articleID=00048144-10D2-1C70-84A9809EC588EF21">The Semantic Web article</a>
</li>
</ul>
</li>
</ul>
</div>
<div id="content">
<h1>Web site name/Document name</h1>
<!-- Bottom margin is applied through CSS to the <code><h1></code> element -->
<p>This is <em>the best content</em> text ever written.</p>
<!-- Indentation is applied through a general "pre-amble" CSS class -->
<p class="pre-amble">
Indented pre-amble text explaining something.
</p>
</div>
<div id="contact-form">
<form action="/contact" method="post">
<div>
<label for="user-name">Name</label>: <input id="user-name" type="text">
<input type="submit" value="Send">
</div>
</form>
</div>
</div>
Ну как Вам? Что скажете?
Разделяйте семантику и оформление документа
Уясните для себя одну простую вещь: HTML отвечает за семантику документа, CSS – за его оформление. И никак иначе. Помимо этого используйте каждый элемент по его прямому назначению, например, никогда не используйте элемент заголовка с целью банального увеличения размера шрифта, а элемент <blockquote> для выделения текста.
Мне часто задают вопрос на счет элементов списка: «В каких случаях использовать маркированный, а в каких немаркированный списки?». Лично мое мнение таково, что главное его использовать по прямому назначению, т.е. для создания списков, а остальное уже на Ваше усмотрение, ибо семантика – не внешний вид.
Преимущества семантической разметки
Далее следует список, в котором перечислены несколько преимуществ от семантической разметки документов:
- Повышается доступность, т.к. страницы Вашего сайта не потеряют своей структуры даже при отключенном или неподдерживаемом CSS.
- Контент страниц Вашего сайта будет понятен для людей, читающих сайты с помощью специальных программ для чтения с экрана.
- Семантическая разметка оказывает положительное влияние на поисковые системы, т.к. их роботам не составляет труда индексировать страницы и определять истинное значение тех или иных фрагментов текста.
- Значительно упрощается дальнейшая поддержка подобным образом сверстанного сайта, снижаются затраты на редизайн.
- Уменьшается вес страниц сайта, повышается читабельность кода сайта за счет его компактности, увеличивается скорость загрузки страниц сайта.
Оригинал статьи: Explaining semantic mark-up
Смотрите также:
- Jquery скрипты
- Создание логотипа
- Текстуры
- Jquery всплывающие подсказки
- Jquery плагины
- Шаблоны сайтов css
- Иконки для рабочего стола
- Бесплатные шаблоны сайтов HTML css
- Очень красивые шрифты
- Оформление таблиц css
15 комментария(-ев)
Статейку в закладки однозначно
кстати одним из плюсов безтабличной верстки является более быстрое отображение содержимого (в табличной — пока вся таблица не зальется в память ничего не отобразиться, в бестабличной напротив отображать можно по ходу считывания)
ссылки на сайты с дивной версткой в студию! которые будут нормально оттображаться с отключенным css
lebster, сайт моей веб-компании http://www.studioforyou.ru
спасибо… просто мне обычно попадались стремные сайт
Ох, сколько же этих табличных сайтов в рунете — жуть!!! Не хотят наши веб-»мастера» идти в ногу со временем!!!
>снижаются затраты на редизайн
Вы сами понимаете смысл этой фразы?
>Уменьшается вес страниц сайта, повышается читабельность кода сайта за счет его компактности, увеличивается скорость загрузки страниц сайта
Вы то сами верите в это?
Это все не из-за семантики происходит. От того что вы выделите заголовок и обозначите список в коде вес страницы не уменьшится.
Ваш сайт, http://www.studioforyou.ru/ , валидатор 1 ошибку только выдает, не указан тип скрипта в теге
Поправить это и вообще супер будет! Тем более на див-ах сайт
И это при доктайп Strict.
Респект!
Константин, спасибо! Высокое качество — как стандарт!
Большое спасибо за статью.
Не соглашусь только со стабильностью при отлюченном или неработающем CSS — в таких случаях талицы по-крайней мере держут общую сетку, блоки же распадаются и занимаются поточное (друг под другом) расположение, что делает чтение затруднительным. Сам верстаю исключительно блочно. Таблицы нужны для таблиц.
Подскажите хорошие сайты по блочной верстке
буду учиться
сайтов полно ,используйте яндекс =)
сам перешёл недавно на блочную вёрстку ,оч интересная и удобная штука .
действительно таблицы для таблиц и извращаться с ними для дизайна — прошый век )
Блочная вёрстка таки да рулит))
Могу подсказать сайт нашей компании как один из примеров…
Ага, а чё ж тогда Яндекс до сих пор на таблицах сделан?
А так же artlebedev и mail.ru…
>>> логического выделения наиболее важных фраз в тексте ( — _полужирным_, — _курсивом_)
Вы серьезно такое пишете в статье про _семантическую_ верстку или издеваетесь? Кстати, в оригинале по ссылке этого бреда нет. Пожалуйста, уберите эту сбивающую с толку отсебятину из перевода, не позорьтесь.