Jump to content
  • 0

Первая строка


Zueff
 Share

Question

DOCTYPE. Одно название уже говорит само за себя (тип документа).

 

Спецификация HTML 2.0 (1995 год)


To identify information as an HTML document conforming to this specification, each document must start with one of the following document type declarations.


<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
...


 

Вольный перевод

Для определения информации о том, какой спецификации соответствует HTML документ, каждый документ должен начинаться с одного из следующий объявлений типа документа.



<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
...




 

По сути, DOCTYPE (Document Type Declaration) определяет тип спецификации HTML. В каждой спецификации прописаны поддерживаемые ей элементы, атрибуты, и их взаимоотношения. Изначально спецификации писались в DTD, а сегодня это XML Schema.

 

Есть один интересный момент, в HTML коде большинства сайтов 90х годов разработчики вообще редко прописывали DOCTYPE. Потому, что браузеры тех времён могли самостоятельно выбирать спецификацию документа и поэтому у разработчиков попросту не было нужды прописывать DOCTYPE в первой строке кода.

Но к началу нулевых годов DOCTYPE стал обязательным элементом и все веб-разработчики начали прописывать его в своих страницах. Причина кроется в том, что DOCTYPE приобрёл новое значение. Теперь он переключает режимы работы браузеров. И всё это из-за CSS!

 

К концу 90х годов существовало огромное количество сайтов. Веб-страницы, в основном, просматривались через такие браузеры, как Netscape Navigator и Microsoft Internet Explorer. Эти браузеры обрабатывали некоторые CSS свойства по-своему, а не в соответствии со стандартами.

 

Первый браузер поддерживающий CSS был Internet Explorer 3, вышедший в 1996 году. IE3 надежно поддерживал большинство цветов, фоновые и текстовые свойства, но box model (margins, paddings, borders) не была полностью реализована, а свойство display и псевдо-элементы вообще не поддерживались.

 

Когда было решено создать браузер полностью соответствующий стандартом CSS, оказалось, что все унаследованные страницы ломаются! Одна из главных причин была box model.

 

zFdOQ1S.gif

 

В старых версиях IE значение высоты/ширины бокса включало в себя border и padding.

 

K09Kg6i.gif?1

 

Оба элемента имеют одинаковые значения высоты и ширины. Слева – стандартный; справа – старый IE.

 

Поэтому в новых браузерах появились два режима обработки страниц – standart и quirk (чудачества). Страницы использующие DOCTYPE с HTML версии 4 и выше обрабатываются в соответствии со стандартами, а страницы без DOCTYPE или с DOCTYPE, но версией HTML ниже 4 обрабатываются, как в старом браузере. Даже если написать в первой строке кода просто <!doctype html> (без версии HTML), то браузер IE6 (дата релиза: 2001 год) и выше включат стандартный режим.

 

Ресурсы по теме:

Edited by Zueff
Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Я только знакомлюсь с HTML и CSS. Меня заинтересовал Doctype. На русском языке я нашёл мало информации, особенно по quirk mode, поэтому обратился к первоисточникам. Собранную информацию разместил здесь, в разделе «для начинающих», в надежде получить дополнения от более опытных, а также поделиться информацией с начинающими.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By EnselerizeR
      Здравствуйте!
      Делаю страницу для использования в IE7 и столкнулся с проблемой.
       
      В странице используется текстовый редактор с подсветкой кода CodeMirror.
      В IE7 редактор отображается некорректно, если не использовать доктайп (в редакторе появляются неактивные полосы прокрутки, а при наборе текста страница сама прокручивается).
      Увидел, что в демо-страничках из дистрибутива CodeMirror используется <!DOCTYPE html>.
      При установке <!DOCTYPE html>, на моей странице перестают корректно отображаться многие стили (отступы и всё с этим связанное, установка цвета фона контейнеров и пр.), причем только в IE7.
      При этом, редактор начинате работать как полагается
       
      В нормальных браузерах проблемы не возникает.
       
      И CSS, и HTML проверял валидаторами, они ошибок не выявили.
       
      Желаемое отображение можно посмотреть на jsfiddle, а вот так это выглядит в IE7.
       
      Прошу помочь устранить проблему, или же посоветовать максимально простой редактор с подсветкой кода, работающий в IE7.
       
      Заранее благодарю за помощь 
    • By forest_moss
      Всем привет!
      У меня на сайте есть "каркас" в виде php-файла, а переключаемые страницы вложены внутрь него (при помощи php include).
       
      Вопрос: вложенным страницам можно приписывать <doctype>, <head> и <body>?
       
      Контекст:
      Недавно очень неожиданно человек, написавший для меня php, внезапно сообщил мне, что так делать нельзя.
      А у меня уже наверно есть повторяющиеся названия классов на разных станицах, и многие стили присвоены не классам, а элементам.
      Придется все переписывать, если хочу, чтобе все было красиво?
      Потому что по сути все и так работает, но если кто-нибудь потом будет дорабатывать/менять, то не хочется, чтобы меня проклинали на чем свет стоит. или тем более убивали мое детище и переписывали заново (даже подумать об этом страшно и грустно).
    • By parzhitsky
      Сверстал себе обычную, ничем не примечательную страничку. В ней есть таблица. Для этой таблицы выставлено CSS-свойство: 
      height: 100%;То есть, высота таблицы выставлена "на полную мощность" - на всю высоту документа.
       
      Вся эта благодать работает ровно до того момента, как я добавляю в начало документа тег:
      <!DOCTYPE HTML>который просто-напросто обрезает мне высоту таблицы до высоты содержимого. И теперь, чтобы изменить высоту таблицы, я должен объявлять её абсолютными величинами (в пикселах, дюймах, метрах или километрах – как угодно, но уже не в процентах). 
      Объясните мне, пожалуйста, что происходит?
    • By Andrew_007
      Здравствуйте!
       
      Как вы думаете, стоит ли использовать <!DOCTYPE html>, доктайп для html5, если сам валидатор http://validator.w3.org/ предупреждает что это экспериментальная функция и могут быть проблемы?
      Какой доктайп сейсас лучше использовать?
      Каким доктайпом всегда пользуетесь вы?
      Или выбор доктайпа зависит от конкретного проекта?
    • By ml227
      Написал простенький сайт.Только добавил !DOCTYPE html , css стили отключились.
      (режим совместимости как я понял).В чем дело?
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy