Почему важен 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: немного подправил ошибки
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 96

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

          подробнее — xhtml строже к ошибкам и умеет (при определённых условиях) вставлять в себя документы других форматов.
          • UFO just landed and posted this here
              0
              Формально, к сказанному выше могу добавить следующее: если просто заменить доктайп с html на xhtml, то по сути практически ничего не изменится. Если хочется иметь труЪ xhtml то сервер должен послать заголовок «content-type: application/xhtml+xml», но любая микроошибка html (незакрытый тег, к примеру), которая простима в html приведёт в xhtml к ошибке парсера и отказу от рендеринга всей страницы (т.е пользователь увидит не страницу, с некоторыми ошибками, а увидит только сообщение об ошибке).
              • UFO just landed and posted this here
                • UFO just landed and posted this here
              +3
              Замечательная инициатива. Жду :)
              +1
              «HTML 1.1 DTD

              Это новый DTD, который ....» — наверное вы имелли в виде XHTML 1.1
                +2
                ну да, doctype в первую очередь нужен валидаторам, а <blockquote&rt; вдруг стал устаревшим…
                кг/ам больше тут сказать нечего
                  +5
                  Мне казалось, что em тоже пока не устарел.
                    +4
                    Интересно, а чем предлагается делать в CSS em? Em — это же вроде эмфазис, семантическое выделение в т.ч. для голосовых браузеров.
                    +1
                    ну не вдруг сразу, а уже довольно давно)
                      +4
                      Назовите хоть одну спецификацию w3c, где blockquote признан устаревшим, нерекомендуемым или вообще исключён.
                        –9
                        Ищу, пока не нашел. Возможно я и не прав, сильно подробно информацию не проверял. Спасибо за внимательность
                          +4
                          каких сферических коней в вакууме надо СЕМЬ ЛЕТ программировать на php, чтобы настолько плавать в спецификациях xHTML?!
                            +2
                            сдались они гендиру?
                              0
                              Cдались они программисту?
                              Программист пишет логику, для представления вполне достаточно существующих фреймворков.
                              А html ручками писать — на то верстальщики придуманы.
                            +1
                            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
                              Хотя все же я ошибся, в одном из модулей xhtml 1.1 есть упоминание про blockquote. Ошибочка вышла :-)
                          +4
                          blockquote не объявлен устаревшим ни в одном из существующих стандартов. Да и семантически его нечем заменить. Объявлено устаревшим его не семантическое использование для создания отступов.
                        +10
                        >Все аттрибуты должны использоваться в длинной форме, а не в короткой: disabled=«true» в XHTML против DISABLED в HTML

                        disabled=«disabled» вообще-то.
                          +4
                          Про <!DOCTYPE html> еще можно было бы добавить.
                          +2
                          опять 25
                            0
                            У тебя там опечатка в заголовке (под сводной таблицей DTD) HTML 1.1 DTD вместо XHTML 1.1 DTD
                              –7
                              а минус за что?)
                            • UFO just landed and posted this here
                              • UFO just landed and posted this here
                                • UFO just landed and posted this here
                                    –2
                                    Ну вот

                                    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.

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

                                    www.w3.org/TR/html401/index/attributes.html — буква D напротив аттрибута — указывает что этот аттрибут у указанных тегов устарел.
                                    • UFO just landed and posted this here
                                        –2
                                        Что вы так распереживались то? Какого тега вам не хватает в HTML 4.01? Мне например вполне хватает того. что есть.
                                    0
                                    Повезло вашим сотрудникам
                                      +4
                                      кавычки забыл :-D
                                      0
                                      И заодно :)
                                      Все аттрибуты должны использоваться в длинной форме, а не в короткой:
                                      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
                                        У статьи отсутствует самый важный источник информации, w3.org, знакомство с ним могло бы сильно улучшить статью и убрать вопиющие ошибки, типа депрекейта на аттрибут type.

                                        Автору также рекомендую к прочтению статью Ивана Салагаева «XHTML, говорите?»
                                        softwaremaniacs.org/blog/2005/12/19/xhtml-you-say/
                                        • UFO just landed and posted this here
                                            +2
                                            Забыли ссылку на оригинальную статью: Fix Your Site With the Right DOCTYPE!, которой уже больше семи (!) лет.
                                            0
                                            Поправьте, если я ошибаюсь, но XHTML развиваться вроде не будет, так что я бы его убрал из списка.

                                            Сам использую, и всем советую HTML 4.01 Strict + проверка валидатором, так как иначе вам придется не только исправлять глюки ИЕ, он и верстать для него отдельно с учетом Quirks Mode (и другой боксовой модели, есои не путаю). Смысла верстать по устаревшим правилам я не вижу.
                                              0
                                              Если XHTML развиваться и не будет, то лишь потому что он уже развился до той фазы, в которой ему развиваться больше некуда — и это повод его не использовать?
                                                –2
                                                Гм, ну я в свете того, что впереди все равно нас ждет HTML 5 — наверно логичнее использовать HTML 4.01? Хотя мне в XHTML многое нравится, и строгость, и запрет использования устаревших тегов.
                                                • UFO just landed and posted this here
                                                    0
                                                    Гм ну тогда да. но ведь ИЕ6 не поддерживает MIME xhtml+xml, получается все равно использовать полноценный строгий XHTML нельзя!
                                                    • UFO just landed and posted this here
                                                    0
                                                    Необходимость использования XHTML вместо HTML определяется необходимостью обработки участкой XHTML разметки как XML документов в процессе подготовки результирующего документа для отдачи пользователю. Если же этого не требуется, то использовать можно что разрешают религия и привычки верстальщика, а также внешние требования к документам.
                                                +13
                                                >Решил проводить регулярные лекции и практические
                                                >занятия со своими сотрудниками по программированию
                                                > на 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
                                                  Вы возможно не заметили, у автора стоит ссылка на статью Зельмана
                                                    +1
                                                    Да, не заметил. Тем более странно, что данный материал не только появился, но и попал на главную. Любой нормальный разраб на заре своей карьеры как минимум читал этот материал в переводе. Что-то писать помимо этого — тупо копипастить.
                                                      –2
                                                      Объясню почему написал. Компания растет, берем новых разработчиков, люди с разным уровнем, с разным углублением в отдельные направления программирования. Два раза за неделю получилось что не работали различные jquery эффекты или что-то в этом роде — ребята бились-бились, пока кто-то не подсказал поставить другой doctype. Поэтому я решил что буду тратить по часу пару раз в неделю и собирать «базу знаний» чтобы все говорили на одном языке и не делали глупых ошибок.
                                                        0
                                                        Хорошо, не вопрос. Не очень хорошо подготовленные кодеры получают запарки. Да, с кадрами плохо, кто спорит, но зачем это все выкатывать на хабр? Кому нужны многократно пережеванные темы? Ламерам? Им оно не нужно, они и так читать не умеют. Более адекватным разработчикам? Они это мало того что знают, так еще и активно используют.
                                                  • UFO just landed and posted this here
                                                    0
                                                    Хорошая статья. Но, мне кажется, что насчет «как в IE4» вы все-таки (очень) сильно погорячились.

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

                                                      Не позорьтесь.
                                                        +4
                                                        через годик работы такие статьи обычно некогда писать, интереснее что-нибудь другое, например, поддержка или производительность data:URI :)
                                                        +4
                                                        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
                                                        • UFO just landed and posted this here
                                                            +1
                                                            Если вгрызаться в подробности, нужно ещё и про чуть-чуть разные версии движка IE7 поговорить. Речь шла о базовых вещах.

                                                            Супер-стандартный — это прозвище, которое более-менее устоялось. А спорить о прозвищах дело неблагодарное, всё равно запомнится то, что проще понять.
                                                            • UFO just landed and posted this here
                                                                +2
                                                                Речь как раз об этом — о фиксах, которые сделали в движке IE7, который включили в IE8. Ничего паранормального )
                                                            +1
                                                            В данном случае я хотел показать что в IE8 режим зависит не только от указанного DOCTYPE но и от других неожиданных факторов.
                                                              0
                                                              божемой, ИЕ9 на подходе…
                                                              0
                                                              Прочитал статью, но так и не понял — чем же важен doctype. С учетом того, что большая часть современных браузеров поддерживает отображение страницы вообще без указания doctype.
                                                              • UFO just landed and posted this here
                                                                  –2
                                                                  >Это в самых общих чертах, есть нюансы,

                                                                  -Васильваныч, а, Васильваныч, тут в книжке слово непонятное. Н-ю-а-н-с… а шо это?
                                                                  -А ты, Пэтка, под сюды, разворачивай задом, сымай портки и вставай раком.
                                                                  Петька делает как велено. Василий Иванович спускает штаны и кааак Петьке засаживает.
                                                                  -Ну вот смотри. Вроде бы и у меня х*й в жопе, и у тебя, но есть нюанс…
                                                                  • UFO just landed and posted this here
                                                                      +1
                                                                      Кому нужны многократно пережеванные темы?

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

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

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

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

                                                                                    Only users with full accounts can post comments. Log in, please.