2

我倾向于认为没有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
4

1 回答 1

2

HTML5 规范要求在解析媒体类型为 的文档时text/html,当存在打开的 p 元素时遇到的<table>标签(严格来说,当“打开的元素的堆栈在按钮范围内有 ap 元素”时)不会导致 p 元素以怪癖模式关闭,否则会关闭。

DOM 中,getElementByClassName()函数在 quirks 模式下不区分大小写,否则不区分大小写。

对于渲染,有很多变化。这个来自 WHATWG 的规范似乎是最权威的:http: //quirks.spec.whatwg.org/

例如,您给出的身高怪癖由“3.2 无单位长度怪癖”解释

CSS 对象模型 (CSSOM)规范描述了对获取样式表的算法的更改。

CSSOM视图模块规范描述了获取和设置时对 clientWidth、clientHeight、scrollTop、scrollLeft、scrollWidth 和 scrollHeight 值的更改。

于 2013-08-18T10:22:22.247 回答