DocType заставляет div сидеть слишком высоко (вершина маржи не выполняется) - PullRequest
0 голосов
/ 13 марта 2012

Я использую определенный DocType в своем HTML-документе, чтобы IE отображал Arial так же, как Firefox, Chrome и Safari.

Моя проблема: Из-за этого конкретного типа доктрины некоторые дивы сидят выше (ось у), чем следовало бы. Это происходит только в IE. Вы знаете, что я могу сделать, чтобы это исправить? Может быть, сброс CSS или взлом IE?

Используемый мной doctype, вызывающий эту ошибку:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

Я использую этот тип документа, потому что он заставляет IE отображать текст Arial с тем же весом шрифта, что и в других браузерах (в противном случае он отличается), но он также заставляет div сидеть слишком высоко.

Ответы [ 2 ]

2 голосов
/ 13 марта 2012
  1. используйте тип документа HTML5: <!DOCTYPE html>. doctype как раз там, чтобы предотвратить причудливый режим (и не исправить все несоответствия). DTD - это тот, который устанавливает используемый HTML (HTML4, XHTML и т. д.) и сообщает браузеру, как допустима разметка. DTD не используется в типе документа HTML5.

  2. убедитесь, что до < в типе документа нет пробелов. это включает в себя что-нибудь из символа, пробела или новой строки. В IE, даже один символ, прежде чем он вызывает режим причуд.

  3. проверьте, использовали ли указанные вами <div> отрицательные верхние поля, чтобы компенсировать заполнение тела / поле, которое возникает, когда страница отображается в режиме причуд или когда стили не сбрасываются. если так, удалите их. разработчики склонны забывать тот факт, что браузеры отображают данные непоследовательно, в том числе тот факт, что тело имеет поля.

1 голос
/ 13 марта 2012

Этот тип документа:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

вызывает причудливый режим в IE.

Я использую определенный DocType в своем HTML-документе, чтобы гарантировать, что IE отрисовывает Arial так же, как Firefox, Chrome и Safari.

Вы должны просто позволить IE9 использовать DirectWrite (это «другая» техника рендеринга текста). Firefox> = версия 4 также использует DirectWrite . Рендеринг текста между IE9 (в стандартном режиме) и Firefox должен быть очень похожим. Если нет, то что-то не так.

Если вы настаиваете на том, чтобы IE9 использовал рендеринг текста GDI, то есть лучшее решение, чем форсировать режим причуд через древний тип документа.

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

<!DOCTYPE html>

Затем вы должны добавить этот метатег внутри <head>, чтобы заставить IE вести себя как IE8, в комплекте с рендерингом текста GDI:

<meta http-equiv="X-UA-Compatible" content="IE=8" />

Таким образом, IE будет использовать режим IE8, который является радикальным шагом по сравнению с режимом причуд (т.е. IE5.5).

Я уже намекал на это, но я должен прямо сказать: пожалуйста, не включайте режим IE8 только для того, чтобы избежать DirectWrite. Вместо этого используйте новый и улучшенный рендеринг текста в IE9!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...