美文网首页
总是被忽略的DOCTYPE

总是被忽略的DOCTYPE

作者: evelynlab | 来源:发表于2016-11-28 11:50 被阅读71次

    名词解释

    • DTD: Document Type Definition 文档类型定义
    • SGML: Standard Generalized Markup Language 标准通用标记语言。

    SGML 是一种很强大但很复杂的标记语言,HTML、XML 就是从中衍生出来的。

    <!DOCTYPE>为什么有个“!”?

    <!DOCTYPE>声明不是HTML标签;

    <!DOCTYPE>的位置?

    <!DOCTYPE>声明必须位于HTML文档的第一行,位于<html>标签之前

    <!DOCTYPE>的作用?

    告知浏览器用什么标准解析这个文档。DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现。

    HTML4.01与HTML5 DOCTYPE区别?

    HTML5只有一种声明: <!DOCTYPE html>
    HTML4.01有三种声明:strict, transitional, frameset

    HTML4.01基于SGML,需要对DTD进行引用,告知浏览器使用的文档类型。
    HTML5不基于SGML,不需要对DTD进行引用,但需要用DOCTYPE规范浏览器行为。

    SGML 最为强大和古老,XML 是 SGML 的一个子集,HTML 最初也试图成为 SGML 的一个子集,但 HTML 4 以前并不严格符合 SGML 的标准。后来出现了 HTML4,XHTML (符合 XML 标准的 HTML),这两者都符合 SGML 的要求。

    W3C 在制定 HTML5 标准时,希望摆脱 SGML 的一些无用的功能和声明,并延续 HTML4 的风格,而非严格的 XHTML 的风格。

    页面的渲染模式

    页面的渲染模式根据是否声明了DOCTYPE分别触发兼容模式和标准模式。
    document.compatMode可以返回当前页面的兼容模式:

    document.compatMode
    > CSS1Compat  //标准模式
    > BackCompat  //怪异模式、兼容模式
    

    标准模式页面排版和JS运行模式都是以浏览器支持的最高标准运行。
    兼容模式中,页面以宽松向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。

    References

    为何说 HTML5「no longer based on SGML」?

    相关文章

      网友评论

          本文标题:总是被忽略的DOCTYPE

          本文链接:https://www.haomeiwen.com/subject/dgqopttx.html