Веб-разработка

индекс
236,88

Почему важен DOCTYPE и как его правильно использовать

Решил проводить регулярные лекции и практические занятия со своими сотрудниками по программированию на PHP, MySQL, Javascript. А также другим технологиям необходимым для выпуска качественных сайтов. Начать решил с самого «верха», с HTML тэгов. Буду рад, любым комментариям :)
Сразу оговорюсь, что бОльшая часть информации я нашел в интернете, внизу статьи будут приведены ссылки на источники. Часть информации была переведена совместно с google translate.
Итак:

Почему так важен DOCTYPE



Вроде бы вы сделали все правильно, но ваш сайт почему-то не выглядит или не работает, как ожидалось, в последних версиях броузеров.
Вы написали правильный стандартный XHTML код и стандартный CSS. Вы воспользовались стандартной спецификацией для работы с DOM (Document Object Model), чтобы управлять динамическими элементами на странице. И все-таки, в броузерах, которые казалось бы сделаны с соблюдением именно этих стандартов, ваш сайт не работает. Скорей всего, ошибка кроется в неправильном заголовке DOCTYPE.
Эта небольшая статья расскажет вам о заголовках DOCTYPE, которые работают, а также объяснит практическое и теоретическое значение этого, казалось бы отвлеченного от реальности, тега.

Что такое DOCTYPE?


Согласно спецификациям HTML и XHTML тег DOCTYPE (что означает «объявление типа документа») сообщает валидатору, какую именно версию (X)HTML вы используете в своей странице. Этот тег должен всегда находиться в первой строке каждой страницы. Тег DOCTYPE — ключевой компонент web-страниц, претендующих на соответствие стандартам: без него ваш код и CSS не пройдут проверку валидатором.
Тег DOCTYPE также важен для правильного отображения и работы страницы в броузерах, соответствующих стандартам (Mozilla, IE5/Mac, и IE6/Win).
Тег DOCTYPE, в атрибутах которого указывается полный URI (полный web-адрес), сообщает броузерам, что страницу нужно вывести с соблюдением определенного стандарта или подвида этого стандарта.
Если вы будете пользоваться неполным тегом DOCTYPE, устаревшим его видом, или вообще забудете про него, броузер перейдет в «загадочный» (quirk) режим и будет исходить из предположения, что вы писали код страницы с ошибками и вольно отступали от стандартов, т.е. так, как писали в конце 90-ых годов.
В этом режиме броузер попытается разобрать вашу страницу по правилам обратной совместимости и выведет на экран, например, CSS так, как его вывел бы Internet Explorer 4-ой версии, а DOM будет работать так, как он работал именно в этом броузере (IE переключается в свой старый DOM, а Mozilla и Netscape 6 переключается вообще в бог знает что).
Понятно, что для вас эти выкрутасы не желательны. Но именно это вы и получите, если будете пользоваться неполным или неправильным тегом DOCTYPE.

Проблема


Когда создавали NN4, IE4 выполняли правила CSS не совсем в соответствии со стандартом. Реализация Netscape была просто ужасной, IE4 подошел к реализации стандарта лучше, но тем не менее, реализовал его не до конца. Хотя IE 5 Windows исправил множество ошибок IE 4, но оставались другие сбои в CSS (в основном в модели окон (window model)).
Поэтому, когда соответствие стандартам стало важным, W3C поставил производителей браузеров перед жестким выбором.
Приблизится к спецификации W3C было одним из решений проблемы, но если бы производители браузеров просто изменили реализацию CSS, чтобы соответствовать стандартам полностью, многие веб-сайты, «поползли» бы в большей или меньшей степени или оказались полностью неработоспособными. Такое сближение с соблюдением стандарта повлекло бы за собой проблемы. С другой стороны, не приведение к соответствию стандартов могло бы внести вечную путаницу в эпоху войны браузеров.

Решение


Поэтому решением этой проблемы было
  • позволить веб-разработчикам, которые знали о стандартах, выбирать какой режим использовать.
  • продолжать показывать старые страницы по старым (совместимым) правилам. (quirks mode)


Иными словами, всем браузерам необходимо было работать в двух режимах: режим совместимости для старых правил, и строгого режима для стандарта.
IE Mac был первым браузером использовавшим оба режима, а Windows IE 6, Mozilla, Safari, Opera и последовали его примеру.
IE 5 Windows, а также старые браузеры, как Netscape 4, постоянно заблокированы в режиме совместимости.

Решение о выборе, какой режим отображения требуется вызвать, было найдено в использовании «DOCTYPE» переключения. Согласно стандартам, любой (X) HTML документ должен иметь DOCTYPE который рассказывает всему миру, какой тип (X) HTML документа он использует.

Допустимые DTD


 
DOCTYPE Описание
HTML 4.01
<!DOCTYPE HTML PUBLIC  "-//W3C//DTD HTML 4.01//EN" "www.w3.org/TR/html4/strict.dtd"> Строгий синтаксис HTML.
<!DOCTYPE HTML PUBLIC  "-//W3C//DTD HTML 4.01 Transitional//EN" "www.w3.org/TR/html4/loose.dtd"> Переходный синтаксис HTML.
<!DOCTYPE HTML PUBLIC  "-//W3C//DTD HTML 4.01 Frameset//EN" "www.w3.org/TR/html4/frameset.dtd"> В HTML-документе применяются фреймы.
XHTML 1.0
<!DOCTYPE html PUBLIC  "-//W3C//DTD XHTML 1.0 Strict//EN" "www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Строгий синтаксис XHTML.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> Переходный синтаксис XHTML.
<!DOCTYPE html PUBLIC  "-//W3C//DTD XHTML 1.0 Frameset//EN" "www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> Документ написан на XHTML и содержит фреймы.
XHTML 1.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> Разработчики XHTML 1.1 предполагают, что он постепенно вытеснит HTML. Никакого деления на виды это определение не имеет, синтаксис один и подчиняется четким правилам.

HTML 4.01 DTDs


  • HTML 4.01 Strict — Не разрешает презентационной (оформительской) разметки, аргументируя тем, что этоим должен заниматься CSS.
  • Transitional DTD позволяет некоторые устаревшие аттрибуты и элементы
  • Если используются фреймы — должен быть использован frameset doctype


XHTML 1.0 DTDs


  • XHTML Strict DTD самый строгий существующий DTD: устаревшие (см ниже) теги не поддерживаются, и код должен быть написан правильно
  • XHTML Transitional DTD такой же как XHTML Strict DTD, но старые теги разрешены. Это НАИБОЛЕЕ ПОПУЛЯРНЫЙ в настоящий момент DTD.
  • XHTML Frameset DTD единственный XHTML DTD который поддерживает фреймы.


XHTML 1.1 DTD


Это новый DTD, который имеет строгость как у XHTML 1.0 Strict, и основан на фреймворке и модулях описанных в Modularization of XHTML (не стал искать что это такое :).

Статистика использования различных DTD


Староватая (с 2004 по 2008 гг), конечно, но новой не нашел.
www.qindex.info/Q_get.php?g_clss=forum&g_prcss=thrd&g_tmplt=&g_brd=5&g_thrd=128

Получается что Более 50% сайтов работают в режиме quirk mode — то есть в режиме IE4!



Устаревшие тэги и аттрибуты


Устаревшие тэги в алфавитном порядке


  • <applet> Используйте тег<object>.
  • <basefont> используйте CSS.
  • <blockquote>используйте CSS.
  • <center>используйте CSS.
  • <dir>используйте <ul>.
  • <em>используйте CSS.
  • <font>используйте CSS.
  • <isindex>
  • <listing> используйте <pre> или CSS.
  • <menu>замените тегом<ul> или CSS.
  • <nextid>
  • <plaintext> используйте <pre> или <a href='view-source:http://somesite.com'>Source code</a>.
  • <s>используйте<del> или <ins>.
  • <strike> используйте <del> или<ins>.
  • <u>используйте CSS.
  • <xmp> используйте <pre> и CSS стиль.

Устаревшие HTML / XHTML аттрибуты тегов. Все они могут быть заменены CSS стилями.


  • align
  • alink
  • background
  • bgcolor
  • color
  • hspace
  • link
  • size
  • text
  • type
  • vlink
  • vspace

Разница между HTML и XHTML (указаны правила для XHTML)


  • Тэги должны быть написаны в нижнем регистре, вместо  <IMG SRC="resource/frankisboat.gif" WIDTH="389" HEIGHT="227" BORDER="0" ALT="boat">,  как это было в HTML, нужно писать: <img src="resource/frankisboat.gif" width="389" height="227" border="0" alt="boat" />
  • Все теги должны закрываться, или с использованием тэга со слешем в паре, как параграф ( <p></p> ) например, или самозакрывающиеся тэги, как например ( <br /> ).
  • Все теги должны быть правильно вложены друг в друга, без перекрытий
  • Не должны использоваться устаревшие теги
  • Все аттрибуты должны быть набраны в нижем регистре
  • Все значение аттрибутов должны быть заключены в одинарные или двойные кавычки
  • Все аттрибуты должны использоваться в длинной форме, а не в короткой: disabled="disabled" в XHTML против  DISABLED в HTML
  • Структура должна быть отделена от контента. Например тег <p>  -  это часть контента (параграф) и вы не можете поместить в него например таблицу, потому что таблица это часть структуры (форматирования).

 

Совместимость и IE8


IE8 имеет четыре режима: IE 5.5 режим совместимости, IE 7 стандартный режим, IE в 8 стандартном режиме и IE 8 в режиме совместимости.
Выбор способа зависит от данных из различных источников: DOCTYPE, meta элементов, заголовков HTTP, периодически загружаемых данных от Microsoft (!), интрасети, настроек, сделанных пользователем, настроек сделанных администратором, наличия сайта в блеклисте microsoft и прочее!

Схема (черт ногу сломит) определения  в каком режиме работать браузеру IE8


http://hsivonen.iki.fi/doctype/ie8-mode.pdf
 

Источники информации


http://hsivonen.iki.fi/doctype/    — подробная таблица выбора режима работы (все браузеры)
http://en.wikipedia.org/wiki/Doctype
http://www.htmlbook.ru/html/!doctype.html
http://www.webmascon.com/topics/coding/25a.asp
http://www.quirksmode.org/css/quirksmode.html   — что такое Quirks mode
http://www.quirksmode.org/css/box.html   -  исправление box  модели
Последняя таблица соответствий http://hsivonen.iki.fi/doctype/
http://htmlfixit.com/tutes/tutorial_XHTML_and_HTML_-_The_differences.shtml разница между HTML и XHTML
http://htmlfixit.com/tutes/tutorial_XHTML_and_HTML_Validation__Deprecated_tags_and_attributes.php устаревшие тэги и аттрибуты и чем их заменить
http://www.w3.org/TR/html401/appendix/changes.html точная информация о тегах, устаревших в HTML 4.01

 
upd: немного подправил ошибки
+76
3 октября 2009, 11:25
303

комментарии (96)

+39
popotam2 #
В следующем топике я расскажу про META тэги
+2
Arris #
Расскажи, хотя бы в двух словах, чем HTML 4.01 отличается от XHTML 1.0 или XHTML 1.1
–4
Delka #
если не вдаватья в подробности то отличия чисто внешние, в двух словах:
html —
xhtml —
:)

подробнее — xhtml строже к ошибкам и умеет (при определённых условиях) вставлять в себя документы других форматов.
НЛО прилетело и опубликовало эту надпись здесь
0
Olegbl4 #
Формально, к сказанному выше могу добавить следующее: если просто заменить доктайп с html на xhtml, то по сути практически ничего не изменится. Если хочется иметь труЪ xhtml то сервер должен послать заголовок «content-type: application/xhtml+xml», но любая микроошибка html (незакрытый тег, к примеру), которая простима в html приведёт в xhtml к ошибке парсера и отказу от рендеринга всей страницы (т.е пользователь увидит не страницу, с некоторыми ошибками, а увидит только сообщение об ошибке).
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
+3
kochetkovweb #
Замечательная инициатива. Жду :)
НЛО прилетело и опубликовало эту надпись здесь
+1
yakubov #
«HTML 1.1 DTD

Это новый DTD, который ....» — наверное вы имелли в виде XHTML 1.1
+2
Busla #
ну да, doctype в первую очередь нужен валидаторам, а <blockquote&rt; вдруг стал устаревшим…
кг/ам больше тут сказать нечего
+5
WilliamKidd #
Мне казалось, что em тоже пока не устарел.
+4
olegchir #
Интересно, а чем предлагается делать в CSS em? Em — это же вроде эмфазис, семантическое выделение в т.ч. для голосовых браузеров.
+1
ap3rus #
ну не вдруг сразу, а уже довольно давно)
+4
Busla #
Назовите хоть одну спецификацию w3c, где blockquote признан устаревшим, нерекомендуемым или вообще исключён.
–9
popotam2 #
Ищу, пока не нашел. Возможно я и не прав, сильно подробно информацию не проверял. Спасибо за внимательность
+4
Busla #
каких сферических коней в вакууме надо СЕМЬ ЛЕТ программировать на php, чтобы настолько плавать в спецификациях xHTML?!
+2
Treg #
сдались они гендиру?
0
Goodkat #
Cдались они программисту?
Программист пишет логику, для представления вполне достаточно существующих фреймворков.
А html ручками писать — на то верстальщики придуманы.
+1
ap3rus #
XHTML 1.1
ну а дабы проверить вы можете запросто скачать www.w3.org/TR/xhtml11/DTD/xhtml11.dtd и посмотреть синтаксис xhtml, убедившись что там нет ни слова про blockquote
p.s. в XHTML 1.0 он еще был) www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
0
ap3rus #
Хотя все же я ошибся, в одном из модулей xhtml 1.1 есть упоминание про blockquote. Ошибочка вышла :-)
НЛО прилетело и опубликовало эту надпись здесь
+1
synthesis #
Ему и не надо быть объявленным во всех. Достаточно того, что он объявлен в Text Module www.w3.org/TR/xhtml11/xhtml11.html#s_doctype
+4
synthesis #
blockquote не объявлен устаревшим ни в одном из существующих стандартов. Да и семантически его нечем заменить. Объявлено устаревшим его не семантическое использование для создания отступов.
+10
WilliamKidd #
>Все аттрибуты должны использоваться в длинной форме, а не в короткой: disabled=«true» в XHTML против DISABLED в HTML

disabled=«disabled» вообще-то.
+4
WilliamKidd #
Про <!DOCTYPE html> еще можно было бы добавить.
0
billytomson #
добавили: www.w3.org/
+2
almazmusic #
опять 25
0
ap3rus #
У тебя там опечатка в заголовке (под сводной таблицей DTD) HTML 1.1 DTD вместо XHTML 1.1 DTD
–7
ap3rus #
а минус за что?)
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
–2
popotam2 #
Ну вот

New elements

The new elements in HTML 4.0 are: ABBR, ACRONYM, BDO, BUTTON, COL, COLGROUP, DEL, FIELDSET, FRAME, FRAMESET, IFRAME, INS, LABEL, LEGEND, NOFRAMES, NOscript, OBJECT, OPTGROUP, PARAM, S (deprecated), SPAN, TBODY, TFOOT, THEAD, and Q.

Deprecated elements

The following elements are deprecated: APPLET, BASEFONT, CENTER, DIR, FONT, ISINDEX, MENU, S, STRIKE, and U.

Obsolete elements

The following elements are obsolete: LISTING, PLAINTEXT, and XMP. For all of them, authors should use the PRE element instead.

НЛО прилетело и опубликовало эту надпись здесь
–3
popotam2 #
Скажу честно, я не особо задумывался о нужности этого тега, пока мои ребята не столкнулись с тем что правильно написанный сайт работал не так как надо, а после исправления doctype — все стало ок. Это и стало поводом чтобы в нем разобраться
–1
popotam2 #
Пруфлинк про устаревшие теги
www.w3.org/TR/html401/appendix/changes.html#h-A.3.1.2

www.w3.org/TR/html401/index/attributes.html — буква D напротив аттрибута — указывает что этот аттрибут у указанных тегов устарел.
НЛО прилетело и опубликовало эту надпись здесь
–2
egorinsk #
Что вы так распереживались то? Какого тега вам не хватает в HTML 4.01? Мне например вполне хватает того. что есть.
0
Igas #
Повезло вашим сотрудникам
+4
Busla #
кавычки забыл :-D
0
ap3rus #
И заодно :)
Все аттрибуты должны использоваться в длинной форме, а не в короткой:
disabled="true"
в XHTML против DISABLED в HTML
— не совсем точно, в значении одиночных атрибутов нужно использовать имена атрибутов, т.е.
disabled="disabled"
(<www.w3schools.com/Xhtml/xhtml_syntax.asp> либо <www.w3.org/TR/xhtml-modularization/DTD/xhtml-form-1.mod>)
+8
Archy #
У статьи отсутствует самый важный источник информации, w3.org, знакомство с ним могло бы сильно улучшить статью и убрать вопиющие ошибки, типа депрекейта на аттрибут type.

Автору также рекомендую к прочтению статью Ивана Салагаева «XHTML, говорите?»
softwaremaniacs.org/blog/2005/12/19/xhtml-you-say/
НЛО прилетело и опубликовало эту надпись здесь
+2
kost #
Забыли ссылку на оригинальную статью: Fix Your Site With the Right DOCTYPE!, которой уже больше семи (!) лет.
+3
ap3rus #
Вообще большая часть статьи слово в слово взята отсюда: Почему так важен DOCTYPE
0
egorinsk #
Поправьте, если я ошибаюсь, но XHTML развиваться вроде не будет, так что я бы его убрал из списка.

Сам использую, и всем советую HTML 4.01 Strict + проверка валидатором, так как иначе вам придется не только исправлять глюки ИЕ, он и верстать для него отдельно с учетом Quirks Mode (и другой боксовой модели, есои не путаю). Смысла верстать по устаревшим правилам я не вижу.
0
ap3rus #
Если XHTML развиваться и не будет, то лишь потому что он уже развился до той фазы, в которой ему развиваться больше некуда — и это повод его не использовать?
–2
egorinsk #
Гм, ну я в свете того, что впереди все равно нас ждет HTML 5 — наверно логичнее использовать HTML 4.01? Хотя мне в XHTML многое нравится, и строгость, и запрет использования устаревших тегов.
НЛО прилетело и опубликовало эту надпись здесь
0
egorinsk #
Гм ну тогда да. но ведь ИЕ6 не поддерживает MIME xhtml+xml, получается все равно использовать полноценный строгий XHTML нельзя!
НЛО прилетело и опубликовало эту надпись здесь
0
allter #
Необходимость использования XHTML вместо HTML определяется необходимостью обработки участкой XHTML разметки как XML документов в процессе подготовки результирующего документа для отдачи пользователю. Если же этого не требуется, то использовать можно что разрешают религия и привычки верстальщика, а также внешние требования к документам.
+13
alekciy #
>Решил проводить регулярные лекции и практические
>занятия со своими сотрудниками по программированию
> на PHP, MySQL, Javascript.

>Сразу оговорюсь, что бОльшая часть информации
> я нашел в интернете, внизу статьи будут приведены
> ссылки на источники. Часть информации была переведена совместно с google translate.

И вы еще учите других? )) Автор, открой для себя «Почему так важен DOCTYPE» Джефри Зельмана. Прошу обратить внимание на дату публикации ;)

По статье.
>Вы воспользовались стандартной спецификацией для работы с DOM
Которой из? Их несколько.

>Вы написали правильный стандартный XHTML код и стандартный CSS.

>Скорей всего, ошибка кроется в неправильном заголовке DOCTYPE.
Вы уж определитесь, либо у вас «правильный стандартный XHTML» (и DOCTYPE корректрый) либо нет. Нельзя быть чуть чуть беременной.

>Скорей всего, ошибка кроется в неправильном заголовке DOCTYPE.
Нет, ошибка кроется в низкой квалификации разработчика.

>а Mozilla и Netscape 6 переключается вообще в бог знает что
И это в лекции по программированию?

>если будете пользоваться неполным или неправильным тегом DOCTYPE
Можно пример неполного тега?

>Когда создавали NN4, IE4 выполняли правила CSS не совсем в соответствии со стандартом.
А вы думайте, что в наше время все браузеры полностью соответсвуют CSS level 2 (хотя бы 2)? Ну-ну…

В целом остается негативное впечатление. Написано в стиле «Секреты мастерства веб программирования за 10 (20, 30 ...) уроков» или «Веб программирование для чайников».

Если надумайте писать о meta, рекомендую хорошенько перед этим подумать и излагать мысли более технически грамотно.
+1
ap3rus #
Вы возможно не заметили, у автора стоит ссылка на статью Зельмана
+1
alekciy #
Да, не заметил. Тем более странно, что данный материал не только появился, но и попал на главную. Любой нормальный разраб на заре своей карьеры как минимум читал этот материал в переводе. Что-то писать помимо этого — тупо копипастить.
–2
popotam2 #
Объясню почему написал. Компания растет, берем новых разработчиков, люди с разным уровнем, с разным углублением в отдельные направления программирования. Два раза за неделю получилось что не работали различные jquery эффекты или что-то в этом роде — ребята бились-бились, пока кто-то не подсказал поставить другой doctype. Поэтому я решил что буду тратить по часу пару раз в неделю и собирать «базу знаний» чтобы все говорили на одном языке и не делали глупых ошибок.
0
alekciy #
Хорошо, не вопрос. Не очень хорошо подготовленные кодеры получают запарки. Да, с кадрами плохо, кто спорит, но зачем это все выкатывать на хабр? Кому нужны многократно пережеванные темы? Ламерам? Им оно не нужно, они и так читать не умеют. Более адекватным разработчикам? Они это мало того что знают, так еще и активно используют.
НЛО прилетело и опубликовало эту надпись здесь
0
VasilioRuzanni #
Хорошая статья. Но, мне кажется, что насчет «как в IE4» вы все-таки (очень) сильно погорячились.

Да, «загадочный» режим — порадовало (веселились все, кто знает, что это такое :)
Предлагаю называть Transitional «чудесным» режимом, а Strict — «волшебным».
+18
pepelsbey #
Такие статьи нужно писать (точнее, натаскивать из разных источников) не через неделю после знакомства с DOCTYPE, а хотя бы через годик плодотворной работы.

Не позорьтесь.
+4
sunnybear #
через годик работы такие статьи обычно некогда писать, интереснее что-нибудь другое, например, поддержка или производительность data:URI :)
+4
pepelsbey #
IE8 имеет четыре режима: IE 5.5 режим совместимости, IE 7 стандартный режим, IE в 8 стандартном режиме и IE 8 в режиме совместимости.

Бредово изложено.
IE8 имеет возможность переключаться между следующими движками:

— Quirks Mode, IE5 и младше
— Standard Compliance Mode, по сути IE7
— Super Standard Compliance Mode, IE8+

Подробнее здесь: Режимы рендеринга Internet Explorer
НЛО прилетело и опубликовало эту надпись здесь
+1
pepelsbey #
Если вгрызаться в подробности, нужно ещё и про чуть-чуть разные версии движка IE7 поговорить. Речь шла о базовых вещах.

Супер-стандартный — это прозвище, которое более-менее устоялось. А спорить о прозвищах дело неблагодарное, всё равно запомнится то, что проще понять.
НЛО прилетело и опубликовало эту надпись здесь
+2
pepelsbey #
Речь как раз об этом — о фиксах, которые сделали в движке IE7, который включили в IE8. Ничего паранормального )
+1
popotam2 #
В данном случае я хотел показать что в IE8 режим зависит не только от указанного DOCTYPE но и от других неожиданных факторов.
0
alexnd #
божемой, ИЕ9 на подходе…
0
fenrillium #
Прочитал статью, но так и не понял — чем же важен doctype. С учетом того, что большая часть современных браузеров поддерживает отображение страницы вообще без указания doctype.
НЛО прилетело и опубликовало эту надпись здесь
–2
alekciy #
>Это в самых общих чертах, есть нюансы,

-Васильваныч, а, Васильваныч, тут в книжке слово непонятное. Н-ю-а-н-с… а шо это?
-А ты, Пэтка, под сюды, разворачивай задом, сымай портки и вставай раком.
Петька делает как велено. Василий Иванович спускает штаны и кааак Петьке засаживает.
-Ну вот смотри. Вроде бы и у меня х*й в жопе, и у тебя, но есть нюанс…
НЛО прилетело и опубликовало эту надпись здесь
+1
rnbparty #
Кому нужны многократно пережеванные темы?

как Вы недавно изволили выразиться
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
0
t0os #
Большое вам спасибо!
0
sunnybear #
XHTML 1.1 DTD — для него еще нужен Content-Type: application/xhtml+xml
НЛО прилетело и опубликовало эту надпись здесь
0
sunnybear #
мы говорим о том, что есть, или о том, чего хотят создатели стандарта? :)
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
0
deniamnet #
«Тег DOCTYPE также важен для правильного отображения и работы страницы в броузерах, соответствующих стандартам (Mozilla, IE5/Mac, и IE6/Win)»
что-то IE6 не особо им соответствует иногда :)
НЛО прилетело и опубликовало эту надпись здесь
0
deniamnet #
извините, не увидел в статье год
тут понятно, сам в 2002 году тащился от IE6… а потом я очень обломался :)
+1
deniamnet #
www.artlebedev.ru/
судя по тому, что у Темы отсутствует доктайп, то для его сайта (цитирую) «писали код страницы с ошибками и вольно отступали от стандартов, т.е. так, как писали в конце 90-ых годов»
это студия номер 1 в России? круто
НЛО прилетело и опубликовало эту надпись здесь
+1
deniamnet #
последние слова «поверьте на слово...» в этой статье как-то настораживают
+3
xsash #
у Тёмы роль доктайпа играют копирайты в первой строке. Это для браузеров куда строже, чем «XHTML Strict DTD»
0
garbuz #
Расскажите про хедеры еще, типа Expires, Cache-Control, Pragma.
0
svyatogor #
Уважаемый автор! Для кого вы эту статью пишете? Если ориентируетесь на вебпрограммистов, то начинайте с базы, с того, что такое XML, что XHTML его подмножество. Тогда сразу станет ясно что такое валидный документ и DOCTYPE зачем.

А вышло на школьника пых-пых программера, который пытается сваять хомяка. Не хочу никого обижать, но не дотягивает статья :(
–2
haskel #
Ёпт что за детский сад?

Пора вводить babyhabr.ru для таких статей.
Я негодуе. >(
0
bruha #
Структура должна быть отделена от контента. Например тег — это часть контента (параграф) и вы не можете поместить в него например таблицу, потому что таблица это часть структуры (форматирования).

В <p> нельзя поместить <table>, т.к. <p> и все заголовки (h1-h6) — это блочные элементы-исключения, в которые можно вкладывать лишь строчные элементы, к которым таблица не относится.
И p и table — логические элементы, отвечающие за структуру документа.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.