zoukankan      html  css  js  c++  java
  • 关于Doctype与浏览器呈现模式

    一 HTML版本——浏览器向后兼容性(What & Why)

    在介绍什么是Doctype之前,我们先了解一下 HTML版本。
    从HTML的产生到HTML5的提出,经历了几十年的发展和完善。这就导致了许多的web页面,使用HTML的老版本写的。每个版本的标签、语法都不完全相同,很多标签都已经被替换或者废弃了。

    结论1:
    所以浏览器就得:既能支持由老版本HTML写的网页,也要支持最新标准的网页(即向后兼容性)

    二 文档类型(DOCTYPE)

    1 什么是DTD (What):

    不同的HTML版本(标准)的语法规则的不同的,这就意味着相对应的浏览器实际页面渲染机制也不相同。因此就需要引入DTD(文档类型定义)

    1 DTD是一组机器可读的规则,它定义HTML的特定版本的规则里,允许有什 么,不允许有什么;
    2 解析页面时,浏览器就利用这些规则,检查页面的有效性,并进行渲染。

    而DOCTYPE声明,就是用来描述使用哪个DTD的。

    2 什么是DOCTYPE (What):

    • 用来告知浏览器的解析器,使用哪个DTD;
    • DOCTYPE声明通常(但不总是)包含 指定的DTD文件的URL;
    • 它位于位于 HTML文档中的第一行;
    • DOCTYPE当前有两种风格,严格模式和过渡模式。

    三 浏览器模式 和 DOCTYPE切换

    1 浏览器模式

    上文提到,浏览器需要确保向后兼容性(Why and what见上文);
    为了实现这一点,浏览器创建了2种呈现模式:标准模式和兼容模式

    在标准模式中,浏览器根据 当前支持的最新规范 呈现页面;
    在兼容模式中,页面以一种比较宽松的向后兼容的方式显示,它通常模拟老式浏览器的行为,以防止老站点无法工作;

    2 DOCTYPE切换

    呈现 浏览器模式的依据:

    1. DOCTYPE 是否存在;
    2. 使用的 DTD类型;

    当DOCTYPE不存在或形式不正确时,就会导致HTML文档以混杂模式呈现。

    根据DOCTYPE是否存在 选择呈现模式,被称为DOCTYPE切换;
    DOCTYPE切换 是浏览器用来区分 遗留文档和符合标准文档的手段;

    如果选择了错误的DOCTYPE,那么页面就将以混杂模式呈现,其行为就可能会有错误或不可预测。

    四 小结

    1 DOCTYPE声明的作用:

    1 帮助浏览器进行对页面的有效性验证:

    浏览器解析页面规则——需要知道DTD—— DOCTYPE声明可以指定使用哪个DTD;
    所以,DOCTYPE声明告知浏览器的解析器,用什么文档标准解析这个文档;

    2 影响浏览器以何种模式呈现页面:

    浏览器创建了2种呈现模式:标准模式和兼容模式;
    DOCTYPE不存在或格式不正确,会导致文档以兼容模式呈现

    2 HTML5文档声明:
    HTML5不基于SGML,所以不需要引用DTD;
    但是它需要doctype来规范浏览器的行为,让浏览器按照正确的方式运行;

    而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型。

    3 Refernce:
    精通CSS

  • 相关阅读:
    Socket接口(基于 Linux-2.4.0已更新)
    IP协议源码分析(基于linux-2.4.0已更新)
    udp_sendmsg源码完整分析(基于linux5.12.13版本内核)
    UDP详细理解(实现部分基于linux5.12.12版本内核)
    IP地址分配(静态分配+动态分配+零配置)
    计算机网络由哪些硬件设备组成?(基础收录)
    浅析C语言定义时赋值、定义后赋值、定义时不赋值
    《C指针全解》让你不再害怕指针
    makdown文字图片居中字体颜色表格列宽
    (C语言内存二十一)C语言变量的存储类别和生存期
  • 原文地址:https://www.cnblogs.com/ygming/p/8283344.html
Copyright © 2011-2022 走看看