Стандарты XHTML
Замечания
Затрагивая тему разметки веб-страниц ранее мы всегда применяли традиционный язык HTML, который в данный момент является скорее уже теоретической составляющей и на практике почти не применяется. Одним из наиболее распространенных языков разметки гипертекста в последнее время является XHTML. XHTML — это практически тот же HTML, но с небольшими различиями. Существует несколько версий (1.0, 1.1, 2.0 — в разработке) и типов (strict, transitional, frameset) XHTML. Для создания страниц я рекомендую использовать XHTML Transitional или Strict. XHTML Strict требует более строго соблюдения синтаксиса и накладывает ряд дополнительных ограничений. Если необходима страница с фреймами, то используйте XHTML Frameset.
Первое отличие между HTML и XHTML, о котором я бы хотел упомянуть, заключается в написании непарных тегов. Непарные теги в XHTML закрываются при помощи комбинации символа слеша и закрывающей треугольной скобки:
HTML:
<br> <img src="logo.gif">
XHTML:
<br /> <img src="logo.gif" />
Теги XHTML должны быть оформлены в нижнем регистре, обязательно обрамление всех значений атрибутов в кавычки. Для тега img необходимо указывать атрибут alt — текстовая нотация к изображению. И ряд других требований.
В самом начале документа на языке XHTML необходимо указывать так называемый доктайп — специальный тег с указанием версии и типа XHTML, а также URL спецификации. Например, для XHTML 1.0 Strict доктайп выглядит следующим образом:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Обратите внимание, что на этот тег не действуют правила XHTML касательно закрытия непарных тегов и регистра. Если страница не содержит доктайп, браузер отображает данную страницу в режиме совместимости, в то время как соблюдение всех правил XHTML дает большие шансы на то, что ваша страница будет выглядеть одинаково в различных браузерах.
Проверить страницу на соблюдение стандартов поможет ресурс http://validator.w3.org/, который выводит список ошибок с комментариями в переданной в виде URL или файла странице.
В качестве примера покажу приведение к XHTML 1.0 Transitional страницы из этого урока, написанной изначально на традиционном HTML.
В первую очередь задаем странице соответствующий доктайп:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
и отправляем страницу на валидацию в validator.w3.org. Валидатор нашел 152 ошибки. Для начала закроем правильно все непарные теги (meta, link, br, img и т.д.), а тегам img зададим пустые атрибуты alt. После повторной отправки валидатор нашел уже всего 2 ошибки. Первая ошибка:
Missing xmlns attribute for element html
уведомляет нас о том, что тег html должен обязательно иметь атрибут xmnls. Делать можно так:
<html xmlns="http://www.w3.org/1999/xhtml">
Вторая ошибка:
Line 9, Column 59: there is no attribute "height"
указывает на то, что у данного элемента отсутствует атрибут height. XHTML требует максимально использовать CSS-стили для формирования внешнего вида страницы, поэтому многие атрибуты элементов упразднены. Убираем атрибут height в каркасной таблице, а в остальных элементах таблиц атрибуты width и height заменяем на одноименные CSS-стили. После этого страница будет успешно проходить проверку (код страницы).
После переделки из html в xhtml не корректно стала отображаться страница. А именно не работает стиль background-repeat: repeat-x, узор в строке таблицы вообще не прорисовывается. Буду блогодарен за помощь!
Эту проблему решил. Ошибка была в следующем: при задании стиля
не допускается использование в имени рисунка фрагмента (1x38), так как воспринимается он как неизвестные размеры и рисунок не отображается.
Помог ресурс http://jigsaw.w3.org/css-validator/#validate_by_uri