Главная страница   /   6.1. Семантико-презентационное деление (Руководство по HTML5

Руководство по HTML5

Руководство по HTML5

Адам Фриман

6.1. Семантико-презентационное деление

Одно из главных изменений в HTML5 является довольно философским: разделение семантического значения элемента и влияние элемента на подачу содержания. Это довольно рациональная и разумная идея. Вы используете HTML для того, чтобы придать содержанию структуру и смысл, а потом управляете представлением и внешним видом материала, применяя к элементам стили CSS. Не для всех пользователей HTML документов их внешний вид имеет значение, и если вы разделите семантику и внешний вид документа, то такой HTML будет гораздо быстрее обрабатываться и распознаваться.

Большинство новых элементов, которые были добавлены в HTML5, придают определенный смысл вашему содержанию. Вы можете использовать элемент article (описанный в главе 10) для обозначения самостоятельной части контента, подходящей для синдикации, или элемент figure для обозначения рисунка.

Некоторые элементы, которые существовали уже в HTML4, были созданы тогда, когда и в помине не было идеи разделять представление и содержание, и это ставит нас в затруднительную ситуацию. Отличным примером этого является элемент b. До HTML5 элемент b использовался для того, чтобы говорить браузеру, что контекст, расположенный между его открывающим и закрывающим тегами, нужно выделять жирным шрифтом. Поскольку для HTML5 мы не хотим в тексте иметь элементы лишь для представления, нам предлагается новое определение. Вот оно:

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

— HTML: The Markup Language, w3c.org

Это скучный способ сказать нам, что элемент b сообщает браузеру, что он должен сделать текст жирным шрифтом. Для элемента b нет семантического значения, только презентационное. И это запутанное объяснение может сказать нам кое-что важное об HTML5: мы живем в период перемен. Нам нужно сохранить старые элементы, потому что они так широко используются, и сброс HTML4 элементов в HTML5 немыслим, потому что это, несомненно, замедлит адаптацию. Итак, мы имеем двухскоростной стандарт. Некоторые элементы, особенно новые, имеют только семантическое значение. Другие элементы, в основном с одним тегом, настолько хорошо известны, что мы готовы отступить от презентационно-семантического деления, даже если мы не готовы признать это открыто.

Читая описания элементов, начиная со следующей главы, вы увидите, что полезно поддерживать это напряжение между новым образом мышления и старым способом видения. Это, безусловно, поможет объяснить некоторые незначительные странности, с которыми вам придется столкнуться.

Мой совет: нужно немного прегрешить в сторону семантики и, где это разумно, стараться избегать элементов, которые в основном (или исключительно) презентационные. Просто нужно определить пользовательский класс и применять необходимый стиль. Пока вы используете стиль в зависимости от типа содержания (а не только от его представления), вы будете сохранять, по крайней мере, семантический дух.