Doctype: зачем он нужен и с чем его едят (страница комментариев 2)

17 ноября 2008. Рубрики: Рабочие заметки; автор — Юлия Панина aka Княгиня.

Сейчас буду жаловаться. Долго и со вкусом. Начну издалека.Театр начинается с вешалки, а страница html — с объявления типа документа, для краткости именуемого «доктайп» (doctype — document type declaration или dtd). Точнее, должен начинаться — в сети можно встретить немало сайтов без доктайпа. Ничего хорошего в этом нет; если сайт уже свёрстан без доктайпа, его лучше не трогать, но создавать заново лучше с доктайпом. Кстати, страницы без доктайпа трудно править, почему — расскажу дальше. Доктайп сообщает браузеру данные о языке, на котором написан документ: тип языка (html/xhml), версию (html 4.1/xhtml 1.0), направление (strict, transitional, frameset). Для обработки документа существует набор формальных правил, «известных» браузеру. Если браузер получает правильный доктайп, он обрабатывает страницу в соответствии с этими правилами (в режиме стандартов — standard mode). Если не получает или получает неправильный, он переходит в режим обратной совместимости (quirks mode) и начинает обрабатывать код, как разработчики положили на его браузерную душу. Судя по результатам, души у браузеров сильно разные.
Откуда браузер знает эти правила? Об этом должны заботиться его разработчики. Формальное описание каждой из разновидностей html публикуется Консорциумом W3C, и на эти описания равняются разработчики браузеров. Или должны равняться: самый популярный браузер Internet Explorer до сих пор не полностью поддерживает стандарты w3c. Обещал исправиться к седьмой версии, но этого не сделал. Обещает исправиться к восьмой.

Итак: Читать полностью »

27 комментариев на «Doctype: зачем он нужен и с чем его едят»
  1. Дмитрий (1 комментарий)

    Скажите пожалуйста мой блог коряво отображается в IE-9? какой код нужно вставить в Header чтобы он отображался как и на других красиво???

    Ответить на этот комментарий
    • Княгиня (660 комментариев)

      Если вас отображается коряво, проблема намного глубже, чем «вставить код в header». Это заочно не лечится.

      Ответить на этот комментарий
  2. Timur (2 комментария)

    Насколько это сейчас актуально? По моему сейчас все пользуются современными браузерами и можно смело использовать HTML 5 шаблон — просто

    Ответить на этот комментарий
    • Княгиня (660 комментариев)

      Можно. Он входит в список действительных доктайпов. Но надо его использовать. Причём именно его, а не какую-нибудь кривую версию.

      Ответить на этот комментарий
      • Al (4 комментария)

        А как же быть тогда с последующим возможным дополнением кода устаревшими тегами (font, center, u), атрибутами, target=_blank последующими редакторами сайта? Ведь после их введения код перестает быть валидным при использовании доктайпа html5.

        Ответить на этот комментарий
        • Княгиня (660 комментариев)

          Не использовать, и всё. Это с одной стороны, а в другой — не сходить с ума. Если криворукий админ (точнее, контент-менеджер) пихает в сайт что попало, это проблемы его и его нанимателя, а не ваши.

          Кстати, target=_blank в html5 есть.

          Ответить на этот комментарий
  3. Влад (2 комментария)

    то input, начинает чуть-чуть вылезать из блока. Если же DOCTYPE убрать, то всё нормально. Насколько известным является этот баг (я например кое-как его вычислил)? И как с ним бороться (какой DOCTYPE ставить или как-то по-другому)?

    Ответить на этот комментарий
    • Княгиня (660 комментариев)

      Вы, наверное, код приводили. Код убивается при публикации комментария. Либо замените угловые скобки на подстановку, либо попробуйте код взять в <pre>.

      Ответить на этот комментарий
  4. Виктор (2 комментария)

    Спасибо познавательный пост,я как то к оформлению доктайпа подходил просто скопировал вставил и все!

    Ответить на этот комментарий
    • Княгиня (660 комментариев)

      Главное — знать, откуда правильно копировать.

      Ответить на этот комментарий
  5. Виктор (2 комментария)

    Это точно.Но уже освоился в данной теме.Сохраинл много шаблонов и продолжаю работать и саморазвиватся.Ваш блог один из самых любимых!

    Ответить на этот комментарий
  6. Наталья Ткачёва (1 комментарий)

    Вот уж, век живи, век учись. Никогда не думала, что доктайп так важен, особенно когда увидела его «компактный» размер в HTML5. Интересно, разработчики и правда не будут больше изменять доктайп в последующих версиях языка? По идее, это облегчит жизнь верстальщикам. Что думаете по этому поводу?
    Говоря об HTML5, меня крайне шокировало то, что тег head можно просто опустить, да и часть других закрывать необязательно. Привыкла к четкой структуре станиц просто. Как относитесь к этим нововведениям, используете ли в своей работе этот подход?

    Ответить на этот комментарий
    • SelenIT (6 комментариев)

      Да, короткий доктайп — это очень надолго. А необязательные теги — не нововведение HTML5, в HTML4 и более ранних версиях они тоже были и работали. Более того, для пустых элементов типа BR и IMG в HTML4 закрывающие теги были явно запрещены. HTML5, наоборот, разрешил «закрывать» такие элементы в XHTML-стиле, концевым слешем.

      Ответить на этот комментарий
    • Княгиня (660 комментариев)

      Я равняюсь на xhtml strict. Пусть он не нашёл своего места, но привычка к опрятности кода очень помогает в работе, а пятому html не противоречит. ;)

      Ответить на этот комментарий
  7. IvanStepanov (3 комментария)

    Спрасибо за разъяснение в красках, сегодня такая информация редко встречается, хотя ее актуальность не опротестована практикой — до сих пор заказчики требуют совместимость с IE8 и даже — 6!

    Ответить на этот комментарий
    • Княгиня (660 комментариев)

      Неужели и с шестым? С 8 — понимаю, сама недавно с ХР слезла, но кто держит шестой?..

      Ответить на этот комментарий

Есть что сказать? Не молчим!

Используйте теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" code=""> <ul> <li> <ol> .

Комментарии короче 200 символов публикуются без активной ссылки. Пробелы не учитываются.

Ссылки с комментариев dofollow. Ознакомьтесь, пожалуйста, с правилами dofollow-комментирования. Кто не читает, тот сам себе враг.