zoukankan      html  css  js  c++  java
  • 浏览器 怪异模式(Quirks Mode) 与 标准模式(Standards Mode)

    浏览器 怪异模式(Quirks Mode) 与 标准模式(Standards Mode)

    怪异模式,浏览器使用自己的方式解析渲染页面,在不同的浏览器就会显示不同的样式。
    标准模式,浏览器使用W3C的标准解析渲染页面。

    通过 document.compatMode 的值可以知道当前用的是什么模式。
    BackCompat:怪异模式
    CSS1Compat:标准模式


    IE 6 for Windows/mac, Mozilla, Safari和Opera 都实现了这两种模式,但是IE 6以下版本永远定在了怪异模式。
    没有指定dtd将会开启浏览器的怪异模式,这种说法是错的!正确的说法应该是没有定义doctype才会开启怪异模式。


    在标准化之前写的页面是没有doctype的,因此没有doctype的页面是在怪异模式下渲染的。
    反过来说,如果web开发人员加入的doctype,说明他知道他所要做的事情,大部分的doctype会开启标准模式,页面也会按照标准来渲染。
    任何新的或者未知的doctype都会开启标准模式,即只要doctype标签存在就足以开启标准模式了。参考:http://www.quirksmode.org/css/quirksmode.html#link2
    每个浏览器都有自己的方式来激活怪异模式。参考:http://hsivonen.iki.fi/doctype/

    <!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前。
    <!DOCTYPE> 声明不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。
    在 HTML 4.01 中,<!DOCTYPE> 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。
    HTML5 不基于 SGML,所以不需要引用 DTD。

    常用的 DOCTYPE 声明:

    HTML 5
    <!DOCTYPE html>

    HTML 4.01 Strict
    该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

    HTML 4.01 Transitional
    该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

    HTML 4.01 Frameset
    该 DTD 等同于 HTML 4.01 Transitional,但允许框架集内容。
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

  • 相关阅读:
    c++ 为自定义类添加stl遍历器风格的遍历方式
    C++ 生成随机数
    c/c++ 函数说明以及技巧总结
    XSLT 教程
    C# 高效过滤DataTable 中重复数据方法
    xml获取指定节点的路径
    TreeView控件
    推荐一些C#相关的网站、资源和书籍
    C#多线程操作
    C#二进制序列化
  • 原文地址:https://www.cnblogs.com/guodefu909/p/4214105.html
Copyright © 2011-2022 走看看