我倾向于认为没有DOCTYPE
, IE 会有问题,因为没有DOCTYPE
, 它会使用 IE 的盒子模型以 Quirk 模式呈现页面上的项目。
我知道我们应该始终输入 a DOCTYPE
,但这里的关键问题是,如果由于某种原因,当我们分析第三方的网页时,或者在我们知道存在错误之前,如果页面没有 aDOCTYPE
或其DOCTYPE
错误地出现在一些标记之后,例如<html>
和 使该DOCTYPE
行不生效,那么对 Chrome、Firefox 和 Safari 有什么影响?
在我运行下面的代码之前,我通常无法分辨出任何区别(或者有区别吗?)。使用DOCTYPE
,它将报告正确的视口高度(例如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