doctypeВ какой-то момент, когда в интернете накопилось изрядное количество сайтов созданных по старинным правилам, или вообще без оных, ориентировались только на язык HTML, писали со всеми вольностями, которые он позволял. В результате организовалась целая масса «плохих» сайтов, но в тоже время, стандарты развиваются. Как-то нужно было отделить документы новые, в которых учитывались все стандарты, от старых. После появления зыка разметки XML, корпорация Microsoft рекомендовала взять оттуда специальный элемент, служебный, под названием декларация doctype и использовать его непосредственно в языке HTML. Но только в абсолютно других целях.

В каких же целях ставят этот элемент вначале современных веб документов? Если такая декларация doctype установлена, то в этом случае браузер переходит в режим соответствующий стандартам. Режим этот называется «standarts mode», режим стандартов. В случае отсутствия декларации, либо же ее написании неверно, браузер вынужден перейти в режим «quirks mode».

Сайты, в которых отсутствует декларация doctype, загружаются в браузер, тот, естественно, ее не видит, и отображает документы так, как будто это браузер древний и документ древний. Как только декларация doctype появилась, работа с этим документом производится по всем стандартам.

Казалось бы все просто, вот только понятие старины очень разные. Какая, например, может быть старина у браузера Chrome? Он появился то всего несколько лет назад. А, например, у Internet Explorer история богатая, трудная история. Так вот, все версии Internet Explorer в режиме «quirks mode», если декларации doctype нет, отображают документы сайта так, будто бы это начальная версия Internet Explorer 5.5. Она считается родоначальником. Что получается, браузер новый, а отображает документ по старинке.

Но это еще не самое страшное. Если у вас высота документа указана не в пикселях, а процентах, то тогда вышеперечисленные режимы существенно отличается в соотношении к вычислению этой планируемой высоты.