zoukankan      html  css  js  c++  java
  • Quirks Mode and Standards Mode

    标准模式和怪癖模式的由来

      早期的web文档主要有两种版本:   一种为navigator写的,   另一种为IE写的.   当W3C创建web标准的时候,   浏览器不能马上使用它们,   因为这样将break现存的大部分网站.   为了实现向后兼容性浏览器厂商引入了两种模式,   对早期遗留的页面和新编写的标准兼容页面采取不同渲染方式.

      现在浏览器布局引擎使用的主要有三种模式:   怪癖模式,   接近标准模式(almost standards mode)和标准模式.   

    • 怪癖模式在IE浏览器中模拟IE5下的布局,   在其他浏览器中模拟navigator 4下的布局
    • 标准模式根据HTML和CSS规范进行渲染
    • 接近标准模式只针对一小部分特性进行怪癖实现

    浏览器如何决定使用哪种模式?

      对于HTML文档,   浏览器使用文档开始部分的doctype来决定渲染模式.   为了确保页面以标准模式渲染,在文档中应该准确声明doctype.   如下例子

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset=UTF-8>
        <title>Hello World!</title>
      </head>
      <body>
      </body>
    </html>

      上例中使用的<!doctype html>是最简单也是HTML5所推荐的.   早期版本的HTML标准有其他的声明,   现存的所有浏览器都会议标准模式渲染例子中的文档,   这其中包含古老的IE6.   这也就没有必要去选择其他复杂的doctype了.   如果确实需要使用其他的doctype,   可能会冒一些风险,   不恰当的使用将会触发接近标准模式或者怪癖模式.

      在声明doctype时须确保它位于HTML文档的最开始部分.   在doctype前面的任何注释或者XML声明都将在IE9及更老的版本中触发怪癖模式.

      doctype声明在HTML5中唯一的作用就是保证浏览器以标准模式渲染页面.

    XHTML

      如果XHTML页面的HTTP头部Content-type设置为application/xhtml+xml那么即使不设置doctype也会始终使用标准模式.   然而由于IE8不能识别该类型,   设置为application/xhtml+xml类型将会导致IE8触发下载对话框,   直到IE9才支持xhtml.

    参考:

    https://developer.mozilla.org/en-US/docs/Quirks_Mode_and_Standards_Mode

    http://en.wikipedia.org/wiki/Quirks_mode

  • 相关阅读:
    关于<?php exit;?>"的绕过问题
    机器学习--DIY笔记与感悟--②决策树(1)
    机器学习--DIY笔记与感悟--①K-临近算法(2)
    js 一些基础的理解
    js switch判断 三目运算 while 及 属性操作
    数据类型 数据类型转换 运算符
    数组的一些常用方法分析 介绍
    js常用的字符串方法分析
    js 的作用域 域解析 分析
    js 函数 作用域 全局作用域 局部作用域 闭包
  • 原文地址:https://www.cnblogs.com/qiudeqing/p/3370580.html
Copyright © 2011-2022 走看看