суббота, 28 июля 2007 г.

xhtml и Internet Explorer

Основной аргумент против использования xhtml-верстки это то, что одного объявления в заголовке html-файла DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" недостаточно для того чтобы документ считался xhtml-документом. Нужно ещё в заголовок ответа включить Content-Type application/xhtml+xml. Вот тут и начинается самое главное - IE не понимает этого.

И вдруг, на сайте, W3C обнаруживается решение этой проблемы! Проверка показала, что это решение работает вплоть до IE5.01! Причем работает не только для Content-Type application/xml как там уверяют, но и для application/xhtml+xml. Из замеченных нюансов - подтормаживает, потому что с сайта W3C постоянно тащатся файлы DTD, так как их сервер проставлет Expires равный текущему времени. Они идиоты? Впрочем это решается перетаскивание DTD-файлов себе.

5 коммент.:

Jury комментирует...

Не работает для xhtml1.1 и для application/xhtml+xml.
Пробовал открывать IE 6.0 (или ты про версии 5.1 и старше?).

Если у тебя это работает приведи ссылки на страницы.

Jury комментирует...

Например сам www.w3.org динамически меняет Content-Type в зависимости от пользовательского агента.

Теперь думаю как сделать так же на Servlet/JSP.

enternet комментирует...

Я проверял для xhtml1.0 и IE 6, 7, 5.5, 5.01.
Ссылок сейчас под рукой нет - я на отдыхе, пишу из интернет-кафе. Тема безусловно подлежит дальнейшему изучению.

Jury комментирует...

В итоге остановился на следующем решении:
Форум: Content-Type: application/xhtml+xml text/html

кривому браузеру кривой ответ ;)

Zigzag комментирует...

Все было бы хорошо на первый взгляд, но... Но любая запись пред объявлением доктайпа сваливает ие в режим рендеринга quirks mode, а мне, как верстальщику такие вещи ой как не нравятся...