H5新增——html概述

H5

1.DOCTYPE和浏览器渲染模式
	DOCTYPE,或者称为 Document Type Declaration(文档类型声明,缩写 DTD)
	通常情况下,DOCTYPE 位于一个 HTML 文档的最前面的位置,位于根元素 HTML 的起始标签之前。
	因为浏览器必须在解析 HTML 文档正文之前就确定当前文档的类型,以决定其需要采用的渲染模式,
	不同的渲染模式会影响到浏览器对于 CSS 代码甚至 JavaScript 脚本的解析
	
	
	到目前为止,各浏览器主要包含了三种模式。在 HTML5 草案中,更加明确的规定了模式的定义:
	  	 传统名称	    				  		HTML5 草案名称				document.compatMode 返回值
	standards mode(strict mode) 			no-quirks mode				CSS1Compat
	almost standards mode					limited-quirks mode			CSS1Compat
	quirks mode								quirks mode					BackCompat


	document.compatMode
		 document.compatMode 属性最初由微软在 IE 中创造出来,这是一个只读的属性,返回一个字符串,
		 只可能存在两种返回值:
			BackCompat:标准兼容模式未开启(怪异模式)
			CSS1Compat:标准兼容模式已开启(标准模式)

	在现代主流浏览器中,其实怪异模式的渲染和标准与几乎标准间没有太大的差别(ie9+ 谷歌 火狐 ...)
    ie5.5之前都是ie自己的渲染模式,怪异模式
    ie6才开始慢慢支持标准,标准模式,在ie6 中怪异和标准模式的区别最大
    ie7 8 9都是基于标准模式升级的,他们理论上存在怪异模式

	HTML5提供的<DOCTYPE html>是标准模式,向后兼容的,等同于开启了标准模式,
	那么浏览器就得老老实实的按照W3C的 标准解析渲染页面
	一个不含任何 DOCTYPE 的网页将会以 怪异(quirks) 模式渲染。
	
	
	
	
	
2.DTD
	<!DOCTYPE html>
		当 doctype 信息如上时,表明该页面是遵守了 HTML5 规范的,浏览器会选择 Standards Mode,这种 doctype 是最推荐的一种,
	我们平时设计页面都应该加上这一个 doctype。
		HTML5 不基于 SGML,所以不需要引用 DTD,浏览器内部本身有对标签进行解析渲染验证的模块
	
	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
	当 doctype 如上时,浏览器同样会选择 Standards Mode,虽然和第一种 doctype 有一些区别,但是几乎可以认为是一样的。

	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
	当 doctype 如上时,浏览器会选择 Almost Standards Mode,渲染时和标准会有一些区别

	当 doctype 缺失的时候,浏览器会选择 Quirks Mode,这是非常不推荐的方式,
	当 doctype上面有注释,标签或者空行时,某些浏览器都会认为该页面不具有doctype。
	我们应该尽量避免 Quirks Mode,这对一个 web 应用是非常不利的地方。
	


  
	 
4.每种doctype在浏览器中对应的渲染模式
	https://en.wikipedia.org/wiki/Quirks_mode
原文地址:https://www.cnblogs.com/lufei910/p/13328237.html