Какой тип документа мне нужен?

У меня возникла проблема с использованием типа документа VS по умолчанию

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

На моей странице у меня есть поле содержимого, которое содержит два элемента div, один из которых плавает влево, а другой - вправо. Правый плавающий div содержит высоту: 100%, однако это никогда не применяется для соответствия высоте левого div.

Когда я удаляю тип документа (я знаю, что это плохо, но просто тестировал...) в IE8 сайт выглядит как собачий завтрак, тогда как в Chrome и Firefox он выглядит именно так, как я хотел.


person James    schedule 18.01.2011    source источник
comment
Можете ли вы опубликовать свою разметку, пожалуйста?   -  person indra    schedule 18.01.2011


Ответы (5)


Вы должны использовать любой тип документа, соответствующий версии HTML, для которой вы кодировали. например <!DOCTYPE HTML> для HTML 5.

person Chris Kempson    schedule 18.01.2011
comment
Отличительной особенностью типа документа HTML5 является то, что он на 100% совместим со всеми браузерами. Итак, фактические функции HTML5 могут не работать в старых браузерах, но тип документа работает даже в IE6, поэтому нет необходимости использовать что-либо еще. - person Spudley; 18.01.2011
comment
Инструменты контроля качества, которые зависят от типов документов, — хорошая причина использовать что-то еще. - person Quentin; 18.01.2011

Отсутствие DOCTYPE в основном означает, что браузеры примут неверный HTML и попытаются угадать, поэтому вы никогда не получите последовательных результатов. Просто выберите любую спецификацию по вашему выбору (я стараюсь избегать XHTML, но это дело вкуса) и запускайте свой код через средство проверки HTML, пока в нем не будет ошибок.

person Álvaro González    schedule 18.01.2011

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

  • Активирует стандартный режим (строгий режим).
  • Reflects the markup you are writing (which should usually be:)
    • HTML 4.01 Strict by default (or Transitional if you really need something from it)
    • HTML 5, если вы используете функции из черновика
    • XHTML 1.0 Strict (или Transitional, если вам действительно что-то от него нужно), если у вас есть цепочка инструментов XML с нормализацией Приложения C в конце

Тип документа, который у вас есть, запускает стандартный режим, поэтому вам просто нужно выяснить, почему браузеры не отображают контент так, как вы ожидаете (существует высокая вероятность того, что это будет связано с ошибками в вашем CSS или разметке, которые могут быть обнаружены с помощью < href="http://validator.w3.org/unicorn/" rel="nofollow">валидатор).

person Quentin    schedule 18.01.2011

Нет ответа: поиск двухколоночного макета.

Совет: ищите решения в стиле "очистить: оба". (см. http://www.quirksmode.org/css/clearing.html)

person pkoch    schedule 18.01.2011

Вы ищете, чтобы два div были одинаковыми по высоте? Это никогда не будет иметь место в стандартном режиме, потому что элементы div ведут себя не так, как ячейки таблицы. Ячейки таблицы растягиваются, чтобы соответствовать размерам таблицы, элементы div являются независимыми контейнерами и ведут себя по-разному.

Однако есть решения, такие как техника Faux Column.

Вот статья о методе "ложных столбцов".

person Jon Matthews    schedule 18.01.2011