我在跨浏览器兼容性方面遇到问题,并找到了一个名为“浏览器兼容性检测器”的Chrome浏览器插件。建议添加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分钟前就已经存在,所以我不知道该写些什么。
我建议您仅添加HTML5 docytype
<!DOCTYPE html>
以便您的代码对将来友好,然后开始查明并解决跨浏览器的问题。
此外,如果您不需要支持IE6和IE7等旧版浏览器,则可以开始忽略它们。检查您的统计信息,看看是否值得支持。
<!DOCTYPE ... >
最初是SGML指令,它(直接或通过引用)定义了文档的语言及其可能的结构。如今,有关它在浏览器中激活哪种呈现/解析模式的讨论中可能经常提到。
http://hsivonen.iki.fi/doctype/
这是关于HTML文档的不同doctype声明的一般不错的文章。它具有有关不同模式的一些背景信息以及一个表,该表指示什么文档类型激活了什么模式。通常,最佳实践是使用与您的HTML / XHTML版本(或与您的版本兼容)匹配的doctype声明,并在浏览器中触发标准模式。