Стандарты XHTML

Замечания

Статья явно нуждается в замечаниях. Во-первых, под термином "традиционный язык HTML" я подразумевал HTML без указания Doctype. По поводу распространенности XHTML я, конечно, погорячился. Как показывают события последнего времени (смотрим дату заметки) в мир веб-программирования решительно шагает HTML5. На сегодняшний день именно его я рекомендую использовать при создании HTML-документов.

Затрагивая тему разметки веб-страниц ранее мы всегда применяли традиционный язык 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-стили. После этого страница будет успешно проходить проверку (код страницы).

Комментарии

Оставить комментарий »

 
SquiD
7 января 2013, 18:02
#1
 

После переделки из html в xhtml не корректно стала отображаться страница. А именно не работает стиль background-repeat: repeat-x, узор в строке таблицы вообще не прорисовывается. Буду блогодарен за помощь!

SquiD
7 января 2013, 18:24
#2
 

Эту проблему решил. Ошибка была в следующем: при задании стиля

background: url(img/panel_center(1x38).jpg)

не допускается использование в имени рисунка фрагмента (1x38), так как воспринимается он как неизвестные размеры и рисунок не отображается.
Помог ресурс http://jigsaw.w3.org/css-validator/#validate_by_uri

Оставить комментарий

Ваше имя
 
Ваш e-mail
 
Комментарий