我倾向于认为没有DOCTYPE
,IE 将会出现问题,因为没有 DOCTYPE
,它会使用 IE 的盒模型以 Quirk 模式渲染页面上的项目。
我知道我们应该始终输入 DOCTYPE
,但这里的关键问题是,如果由于某种原因,当我们分析第三方的网页时,或者在我们知道存在错误之前,如果该页面没有DOCTYPE
怎么办?或其 DOCTYPE
错误地出现在一些标记之后,例如 <html>
并做了DOCTYPE
行不生效,那么在 Chrome、Firefox、Safari 上有什么影响?
我通常无法分辨出任何差异(或者存在吗?),直到我运行下面的代码。随着DOCTYPE
,然后它将报告正确的视口(viewport)高度(例如 410
),但没有 DOCTYPE
,它会打印出类似 3016
的内容。所以这是一个差异,稍后我会找出其原因,但除此之外,Chrome、Firefox 和 Safari 上还有哪些差异?一个重要的用途是,当我们知道差异是什么并且当我们在项目中看到一些问题时,我们可以推断这可能是 DOCTYPE
的问题。 .
<!DOCTYPE html>
<html>
<head>
<style>
body { height: 3000; }
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script>
onload = function() {
console.log("jQuery version", $.fn.jquery);
console.log("document.compatMode is", document.compatMode);
console.log("$(window).height() is", $(window).height());
}
</script>
</head>
<body>
hi
最佳答案
HTML5 规范要求 parsing of documents with a media type of text/html
,一个<table>
当存在打开的 p 元素时(严格来说,当“打开元素的堆栈在按钮范围内有一个 p 元素”时)遇到的标记不会导致 p 元素在怪异模式下关闭,但否则会导致关闭。
在 DOM, the getElementByClassName()函数在怪异模式下匹配不区分大小写,否则区分大小写。
对于渲染,有相当多的变化。 WHATWG 的这个规范似乎是最权威的:http://quirks.spec.whatwg.org/
例如,您给出的高度怪异由“3.2 无单位长度怪异”解释
CSS Object Model (CSSOM)规范描述了对获取样式表的算法的更改。
CSSOM View Module spec 描述了获取和设置时 clientWidth、clientHeight、scrollTop、scrollLeft、scrollWidth 和scrollHeight 值的变化。
关于doctype - Chrome、Firefox 和 Safari 中的 DOCTYPE 和 BackCompat 模式与 CSS1Compat 模式有何区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18283890/