Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Религиозные войны > XHTML vs. HTML


Автор: SelenIT 25.7.2007, 20:35
Начало кода страницы... просто страницы;).
Цитата

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head> 
...
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 

Лично я упорно вижу в выделенных местах противоречие. И мне оно почему-то упорно режет глаз. Однако все чаще замечаю, что подобное понемногу становится едва ли не общепринятой практикой.

Ну, положим, как минимум одно логичное объяснение есть - XSLT. Но другие, в т.ч. те, кто про XSLT и не слыхивали, зачем так делают? Интересно, это я такой дурак-ничего-не-понимающий... или в самом деле народ попросту бездумно ломится за модой?

Автор: GZep 25.7.2007, 20:44
Цитата(SelenIT @  25.7.2007,  20:35 Найти цитируемый пост)
выделенных местах противоречие

да не, все нормально тут.
Цитата(SelenIT @  25.7.2007,  20:35 Найти цитируемый пост)
content="text/html

это мы передаем, что это будет текст с разметкой - html
Цитата(SelenIT @  25.7.2007,  20:35 Найти цитируемый пост)
XHTML 1.0 Transitional

этим мы задаем какбы разновидность html.

xhtml - постепенный переход на xml

Автор: SelenIT 25.7.2007, 20:49
Цитата(GZep @  25.7.2007,  20:44 Найти цитируемый пост)
какбы разновидность html

Точно? А ссылочку на стандарт можно? ;)

...Ладно, сам приведу выдержку из http://www.w3.org/TR/2002/NOTE-xhtml-media-types-20020801/#media-types:
Цитата

The 'text/html' media type [http://www.w3.org/TR/2002/NOTE-xhtml-media-types-20020801/#ref-rfc2854] is primarily for HTML, not for XHTML.  In general, this media type is NOT suitable for XHTML. However, as [http://www.w3.org/TR/2002/NOTE-xhtml-media-types-20020801/#ref-rfc2854] says, "[http://www.w3.org/TR/2002/NOTE-xhtml-media-types-20020801/#ref-xhtml1] defines a profile of use of XHTML which is compatible with HTML 4.01 and which may also be labeled as text/html".

Автор: SelenIT 25.7.2007, 21:40
Update. Пожалуйста, внимательно читайте вопрос, прежде чем голосовать! ;)

И еще, голосуя за "реальную крутость" выдачи HTML за "якобы XHTML", хоть немного аргументируйте это (вот как GZep, например) - кто знает, вдруг вы в самом деле меня убедите? ;)

...Или, может быть, вы в самом деле думаете, что от одной лишь смены доктайпа ваш древний и кривой HTML по волшебству превращается в крутой и модный XHTML?
Тогда мы идем к вам! smile 

Автор: sTa1kEr 25.7.2007, 22:25
Цитата(SelenIT @  25.7.2007,  21:40 Найти цитируемый пост)
Update. Пожалуйста, внимательно читайте вопрос, прежде чем голосовать! ;)

Раньше не могли сказать smile Считайте, что я на 3ий пункт ответил.

Цитата(SelenIT @  25.7.2007,  21:40 Найти цитируемый пост)
..Или, может быть, вы в самом деле думаете, что от одной лишь смены доктайпа ваш древний и кривой HTML по волшебству превращается в крутой и модный XHTML?

Нет, конечно. Но DOCTYPE позволяет интерпретировать html по слегка отличающимся правилам. Т.ч. это иногда может иметь смысл. Хотя я считаю, что это моветон. Если сказал, что это xhtml - будь добр выдать именно xhtml, что бы не стыдно было кнопочку "w3c xhtml vaild" повесить.

Автор: SelenIT 25.7.2007, 22:40
Цитата(sTa1kEr @  25.7.2007,  22:25 Найти цитируемый пост)
Раньше не могли сказать

Ну дык холиворы же;) все средства хороши...

Цитата(sTa1kEr @  25.7.2007,  22:25 Найти цитируемый пост)
DOCTYPE позволяет интерпретировать html по слегка отличающимся правилам.

...и чем принципиально эти правила для XHTML-ного доктайпа отличаются от таковых для HTML 4.01 Strict? ;)


Автор: sTa1kEr 25.7.2007, 23:22
Цитата(SelenIT @  25.7.2007,  22:40 Найти цитируемый пост)
...и чем принципиально эти правила для XHTML-ного доктайпа отличаются от таковых для HTML 4.01 Strict? ;)

Принципиально ничем. Но некоторые мелочи могу отображатся слегка иначе (особено в IE) и некоторые верстальщики могут использовать DOCTYPE что бы добится нужного результата. К примеру, использование height и wight из стилей, а не из атрибутов. 

Автор: SelenIT 25.7.2007, 23:49
Цитата(sTa1kEr @  25.7.2007,  23:22 Найти цитируемый пост)
некоторые мелочи могу отображатся слегка иначе (особено в IE)

Ого! Что у Мозилл есть не только "стандартный", но и "полустандартный" режим рендеринга - это ладно, но что у IE есть разные варианты стандартного режима - это что-то для меня новенькое... можно хотя б пару примеров?

Или речь о явных багах IE вроде влияния тега BASE на выделяемость текста в плавающих блоках?

Автор: sTa1kEr 26.7.2007, 00:27
SelenIT, трудно вспомнить, я давно уже верстаю только в xhtml. Но к примеру, точно помню
Код

<table style="height:100%">
<table>

в html таблица будет растянута на 100%, но с использованием DOCTYPE-а нет. Так же, если не ошибаюсь, теги <img> в xhtml воспринимаются как inline, а в html как блочные элементы.

Автор: SelenIT 26.7.2007, 00:42
Цитата(sTa1kEr @  26.7.2007,  00:27 Найти цитируемый пост)
с использованием DOCTYPE-а нет.

Так я и спрашиваю - что изменится, если вместо XHTML-доктайпа поставить HTML Strict?

Надеюсь, Вы ведь не станете спорить, что режим рендеринга (Quirks vs. Standards) определяется наличием в в доктайпе верной ссылки на DTD (а не буквы "X";), а режим интерпретации (HTML vs. XML) вообще целиком зависит от серверного заголовка Content-type?

Автор: sTa1kEr 26.7.2007, 02:56
Цитата(SelenIT @  26.7.2007,  00:42 Найти цитируемый пост)
Так я и спрашиваю - что изменится, если вместо XHTML-доктайпа поставить HTML Strict?

Вы имеете ввиду
Код

<!DOCTYPE html 
     PUBLIC "-//W3C//DTD HTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

?
Вы сами понимаете, что это полный бред. Я говорил, про то, что если в DOCTYPE указано, что это XHTML (не важно Strict, Transitional или Frameset), то браузеры (в частности IE) воспринимают этот код как XHTML со всеми вытекающими от сюда последствиями и отличиями в рендеренге, вне зависимости, что это html и плевать им (ему, IE) на Content-type (точнее то что это text/html).

Автор: nickless 26.7.2007, 03:20
Если выдавать html за xhtml, то смысла нет, потому как
Цитата(sTa1kEr @  25.7.2007,  21:25 Найти цитируемый пост)
Если сказал, что это xhtml - будь добр выдать именно xhtml, что бы не стыдно было кнопочку "w3c xhtml vaild" повесить. 

Автор: SelenIT 26.7.2007, 12:09
Цитата(sTa1kEr @  26.7.2007,  02:56 Найти цитируемый пост)
Вы сами понимаете, что это полный бред. Я говорил, про то, что если в DOCTYPE указано, что это XHTML (не важно Strict, Transitional или Frameset), то браузеры (в частности IE) воспринимают этот код как XHTML со всеми вытекающими от сюда последствиями и отличиями в рендеренге

Действительно бредsmile. Нет различий в рендеринге между языками (X vs. не-X), есть Quirks mode и Standards mode. IE вообще не знаком с XHTML, он "смотрит" только на наличие ссылки в доктайпе (<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> или <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> или еще что-то http://www.w3.org/QA/2002/04/valid-dtd-list.html#DTD - неважно). Мозилла обладает несколько более "тонкой организацией", у нее есть "совсем стандартный" режим рендернинга для Strict-доктайпов (но опять же пофиг, X... или HTML4.01) и "полустандартный" (в нем, в частности, IMG остаются блоковыми) для XHTML Transitional и HTML4.01 Loose.

А специфичные для XHTML фичи (отказ от рендеринга невалидного документа с сообщением об ошибке прямо в браузер, требование заключения скриптов в CDATA-блоки, регистрозависимость тегов в DOM-модели) проявляются только при выдаче страницы с Content-type:application/xhtml+xml - разумеется, только в тех браузерах, которые его понимают (IE, к сожалению, к ним не относится и предлагает сохранить файл на диск, как бинарный). В Мозилле также можно насладиться "настоящим XHTML-ем", открыв с локального диска файл с расширением .xhtml (хорошо еще с ним поэкспериментировать, нарочно делая его невалидным).

sTa1kEr, я реально в шоке, что Вы и вправду этого не знали...

Автор: sTa1kEr 26.7.2007, 14:14
Признаю свою ошибку. Все на свете перепутал. Видимо сказывается отпуск с длительным отсутствием практики.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)