РЭДЛАЙН

Лучшие решения для Вас и Вашего бизнеса!
Создание, обслуживание и Продвижение сайтов, Контекстная и Медийная реклама, Регистрация доменов, Хостинг, Редизайн, Аудит сайта, Создание сайтов в Хабаровске, Владивостоке, Москве и по всей России
Заказать услуги
Мы предлагаем
Интернет-форум
Интернет-каталог
Туристический портал
Сделать стартовой
Поиск по сайту
Карта сайта
Задать вопросы
Схема проезда
г.Хабаровск, ул.Гамарника, 15 оф.17 (4212) 658-653, 637-673, 8-924-200-7194, 8-924-200-4895
E-mail: rlhome@list.ru
       
Рэдлайн - Лучшие решения для Вас и Вашего бизнеса

Уважаемые посетители для Вас: быстрое создание, качественное обслуживание и реальное продвижение Интернет-проектов.

Мы предлагаем лучшие решения для Вас и Вашего бизнеса.

Подробнее ...

"Тот, кто в совершенстве овладеет электронной почтой, будет миллионером в двадцать первом веке."
Билл Гейтс

Главная Языки разметки XHTML, говорите?

XHTML, говорите? Печать E-mail

Одна из самых печальных вещей, которую я замечаю, когда набредаю на русскоязычные веб-разработчицкие сообщества — это полное нежелание разбираться в сути вопросов. Когда что-то у кого-то не получается, он сначала спрашивает это в форуме, где куча самозванных “гуру” начинает ему рассказывать несусветную чушь. Потом, если повезет, кто-нибудь даст ссылку на какую-нибудь более-менее адекватную статью, которая может частично касаться вопроса. Совет же почитать первоисточник (например спецификацию языка) обычно воспринимается как издевательство, потому как по-английски все “свободно разговаривают” только в своих резюме.

Все это приводит к тому, что русское веб-сообщество полно совершенно странных мифов, пугающе противоречащих логике:

* “надо верстать и таблицами, и div’ами”
* “1 em = 16 px”
* “надо писать на XHTML, а не на HTML”

Вот по поводу последнего — сегодняшняя статья.

“Ложки нет”

Во-первых, нужно четко понимать, что чисто технически никакого XHTML в современном вебе не существует. По той простой причине, что самый распространенный браузер, которым пользуются люди, XHTML отображать не умеет. Если IE скормить реальную XHTML-страницу, то он ее покажет как любой другой XML-документ — в виде дерева элементов.

Многие здесь подумают, что я объелся лебеды, и несу чушь, потому что вот же, например — известный сайт, у которого в сурсе сверху недвусмысленно написано, что это XHTML 1.0, и валидатор подтверждает, что так оно и есть. И IE его, разумеется, отображает.

Загвоздка тут в том, что браузеры выясняют тип документа не по DOCTYPE. Вместо этого они смотрят на то, что указано в заголовках HTTP-ответа, с которым пришел документ. А написано там в подавляющем большинстве случаев:

Content-type: text/html



… ну и еще кодировка, возможно. А это значит, что браузер для отображения документа использует HTML-ный парсер. Чтобы браузер начал отображать документ именно по правилам XHTML, нужны две вещи:

* тип должен быть xml’ным: application/xml, text/xml или рекомендуемый именно для XHTML — application/xhtml+xml
* элементы должны принадлежать зарегистрированному для XHTML пространству имен — это вот та штука xmlns="http://www.w3.org/1999/xhtml"

Если так сделать, то как я уже сказал, IE, у которого специального XHTML-парсера нет, будет просто показывать дерево элементов, а новые браузеры действительно включатся в XHTML-режим.

DOCTYPE

Стоит уточнить, зачем же все таки нужен DOCTYPE. Как я уже писал в статье про валидацию, теоретически, он указывает на отдельный документ — DTD — по которому можно фомально проверить синтаксис XHTML. Но стандарт XML позволяет браузерам этого не делать и быть невалидирующими парсерами. Они и не делают. И единственная программа, которая таки использует DTD — это сам валидатор (мне это напоминает негласное требование к москвичам носить с собой паспорт только для того, чтобы милиция могла его наличие проверять :-) ).

Тем не менее, браузеры все-таки используют строчку DOCTYPE. Но исключительно для того, чтобы по совпадению этой строки с некими внутренними шаблонами включать разные режимы обратной совместимости. Например, будет ли IE6 считать размеры боксов по стандарту или в режиме совметимости с IE5, зависит от того, указать ли ему DOCTYPE строгого (X)HTML или нет. А в Gecko-браузерах таких режимов аж три: “загадочный”, “как IE” и “стандартный”.

Кстати, интересующимся сильно советую почитать свежую статью Тима Брея о том, чем вреден DOCTYPE. Тим Брей, между прочим, один из авторов XML.

А и не нужно

Думаю, я не ошибаюь сильно, считая, что призывы писать только на XHTML основаны исключительно на том, что это модно. Я помню, что многих людей в свое время издевательски (зная ответ) спрашивал, а зачем именно они вставляют слеш (”/”) в теги и и зачем именно они пишут в начале документа DOCTYPE разных вариантов XHTML. Никакого внятного ответа я на свой вопрос не получал.

Потому что на практике использовать настоящий XHTML а) трудно и б) практически незачем.

Напомню, что кардинальное отличие XHTML от HTML состоит в том, что XHTML подчиняется жестким XML’ным правилам well-formed’ности. То есть, если в документе хоть чуть-чуть что-то неправильно, то барузер обязан бросить парсить документ и сообщить пользователю об ошибке.

Такая строгость нужна и удобна, если ваш пользователь — программа. Тогда, чем более просты и строги правила синтаксиса, тем проще она сама.

Но такое поведение не подходит на вебе. Ни одному пользователю не интересно знать, как там где-то ошибся автор страницы или автор его CMS. Они приходят пользоваться, а не отлаживать. А в современном вебе, где документы составляются из кучи разных несвязанных кусочков информации, синатксические ошибки, к сожалению, слишком часты. Что означает, что ваш правильный XHTML-сайт будет слишком много времени неюзабельным. Достаточно, например, просто перенести copy-paste’ом URL’ку из браузера в блог и, если в URL’ке есть амперсанды (&), то вы получаете сломанный XHTML, который требует, чтобы эти амперсанды были экранированы (&).

Смысл все же есть

Есть редкие случаи, когда применение XHTML оправдано и на вебе тоже.

Одна из областей применения — микроформаты (о которых я уже как-то писал). Поскольку они предлагаются как вещи и человекочитаемые, и машиночитаемые одновременно, то строгость XML’а для них уже полезна.

Другая, еще более редкая штука — смешанные документы. XML позволяет в одном и том же документе объединять элементы разных XML-языков (поскольку синтаксис общий). Чаще всего это используется для вставления в XHTML кусков математики на MathML и графики на SVG. Есть известный блог — Musings — который это широко использует.

Однако, наверное самый полезный эффект, который XHTML произвел, лежит отнюдь не в технических аспектах. Эта самая буква “X” сыграла в свое время важную роль, сделав из простого как бы всем известного и скучного HTML новую модную технологию. Не будь XHTML’а, наверное куда меньше людей заинтересовались бы идеями современной верстки CSS’ом, разделением содержимого и оформления и стали бы читать спецификации хотя бы и только для того, чтобы повесить на страницу бесполезную кнопочку валидации. Пусть… Главное — общий эффект.

 
Добавить ссылку на страницу:


Новые статьи и публикации



Вступление - Основные (стандартные) возможности и знакомство с сайтом

» Скачать видео-уроки по управлению сайтом от компании "Рэдлайн" (44.6Mb) [...]

Вступление - Основные возможности по управлению сайтом

» Круглосуточная система приема заказов и заявок "Рэдлайн" и клиентская поддержка

Все публикации

Ваше мнение

Откуда Вы узнали о нас?
 
Компания «РэдЛайн» © 2006 - 2011
www.lred.ru (рэдлайн.рф) 680000, г.Хабаровск, ул.Гамарника, 15 оф.17
(4212) 658-653, 637-673, 8-924-200-7194, 8-924-200-4895
E-mail: rlhome@list.ru Авторизация  Администрирование
Заказать услуги (круглосуточно)
Задать вопросы
Поиск по сайту
Карта сайта
Rambler's Top100 Яндекс.Метрика
Заказать сайт » Заказать обслуживание » Заказать рекламу » Предлагаем обменяться ссылками !!! » Добавить в закладки