doctype - Chrome、Firefox 和 Safari 中的 DOCTYPE 和 BackCompat 模式与 CSS1Compat 模式有何区别?

标签 doctype quirks-mode

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

相关文章:

xml - 在 XML 中使用文档类型

html - 如果doctype是html as HTML5,那么IE6是哪种模式?

css - 如果我使用 HTML5 文档类型,为什么不能使我的 div 100% 高度?我如何获得它的 100% 高度

javascript - 在标准模式下设置元素宽度或高度

html - 2010 年不使用文档类型的原因是什么?

html - Div 背景没有绘制整个 Div

html - 如何在 quirksmode 中自动将一个 div 在 IE8 中居中?

css - 使布局在 IE8 怪癖模式下工作

html - 框架集文档类型

html - 为什么在 HTML 4 和 XHTML !DOCTYPE 声明中有一个回车符?