适当的DTD来解决这个问题?

时间:2011-06-23 22:13:44

标签: html cross-browser doctype dtd

我遇到了跨浏览器兼容性问题,并为Chrome找到了一个名为“Browser Compatibilty Detector”的插件。它建议添加DTD以在标准模式下呈现页面。

我补充说:

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

它带来了新问题并修复了其他问题,但至少现在所有浏览器的工作方式都相同。

然而,它仍然建议为另一个问题添加DTD:

In IE6 IE7(Q) IE8(Q), the container will be enlarged when its 'width' or 'height' is not big enough to hold all its contents
Content box's size in Chrome: 1366 * 0, in IE: 1366 * 653.
Suggestion: Use a DTD that makes the page rendered in Standards Mode, so that only IE6(S) will be affected.

我应该添加哪种类型的doctype?我甚至不知道它们在5分钟前就存在了所以我不知道该写些什么。

2 个答案:

答案 0 :(得分:1)

我建议你只添加HTML5 docytype

<!DOCTYPE html>

这样您的代码将会非常友好,然后开始精确定位并修复突发的跨浏览器问题。

此外,如果您不需要支持IE6和IE7等旧版浏览器,那么您可以开始忽略它们。检查统计数据,看看是否支持支持。

答案 1 :(得分:0)

<!DOCTYPE ... >最初是一个SGML指令,它定义(直接或通过引用)文档的语言及其可能的结构。现在,在讨论它在浏览器中激活的渲染/解析模式时,最常提到它。

http://hsivonen.iki.fi/doctype/

这是关于HTML文档的不同doctype声明的一篇非常好的文章。它有一些关于不同模式的背景信息和一个表格,表示什么模式被什么样的doctype激活。通常,最佳做法是使用与您的HTML / XHTML版本(或与您的HTML / XHTML兼容的版本)匹配的doctype声明,并在浏览器中触发标准模式。