Кросс-браузерная совместимость и объявление docType - PullRequest
0 голосов
/ 23 сентября 2011

Я разработал веб-страницу и протестировал ее на firefox, chrome & IE-8. Веб-страница отображается нормально на firefox & chrome, но не на IE. В процессе обеспечения совместимости я изменил объявление DocType с HTML 4.01 Transitional на XHTML 1.1 на HTML 4.01 Strict. Это не смогло исправить кросс-совместимость. Кроме того, я обнаружил, что дизайн веб-страницы портится на firefox & chrome, когда я изменяю DocType с HTML 4.01 Transitional на XHTML 1.1.

Теперь мой вопрос: если DocType имеет значение при разработке веб-страниц, какой из них я должен использовать для кросс-совместимости? Есть ли другое решение, не связанное с DocType?

1 Ответ

3 голосов
/ 23 сентября 2011

Похоже, вы только меняете DOCTYPE, но не меняете HTML или CSS. Это то, что вам нужно сделать, так как каждый DOCTYPE будет отображаться по-разному.

Я рекомендую один из STRICT - HTML4.01 STRICT, XHTML1.0 STRICT или XHTML1.1, в зависимости от ваших потребностей. Или HTML5 (хотя я сам еще не использовал его). Также убедитесь, что вы правильно указали объявление doctype и включили xmlns в тег html, если вы используете XHTML.

Для справки:

  • QuirksMode содержит много полезной информации, включая браузер информация о совместимости
  • A List Apart также действительно полезен статьи.
  • Я ссылаюсь на HTML и CSS2 Технические характеристики часто.

И чтобы проверить ваши типы документов:

HTML 4.01 Строгий, Переходный, Frameset

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

XHTML 1.0 Strict, Transitional, Frameset

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

XHTML 1.1

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

HTML5

<!DOCTYPE html>
...