浏览器的浏览模式(X-UA-Compatible)——浏览器在浏览网页是采用什么内核
对于浏览器的兼容性问题完全可以使用IETester这种多版本IE测试软件,但是为了省时省力,可以在header的meta标签中声明兼容模式
<meta http-equiv="X-UA-compatible" content="edge">
<meta http-equiv="X-UA-compatible" content="IE=Emulate7"/>
——遵循<!DOCTYPE>声明,如果是在标准模式下,就按照IE7的模式渲染页面,如果是怪异模式(兼容模式)就采用IE5的模式渲染页面
<meta http-equiv="X-UA-compatible" content="7">
——无论页面是否有<!DOCTYPE>声明,均采用IE7的标准模式渲染页面
文档解析模式——
1)quiker模式——怪异模式/兼容模式
2)standard模式
DOCTYPE与各种模式的关系:
1)混杂模式——不写DOCTYPE
2)近似标准模式——
<!DOCTYPE HTML PUBLIC "-//W3C//DTD html 4.0.1 Transitional//EN "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
3)标准模式——<!DOCTYPE html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
可以看到过渡型html和xhtml或者框架型html或者xhtml都是近似标准模式,它尽可能遵循标准代的情况下兼容一些废弃的标签,而html5的DOCTYPE和严格型html以及严格型xhtml的DOCTYPE声明则会使得浏览器进入标准模式,它要求所有的标签必须闭合(除了DOCTYPE),而且不能使用废弃的标签。
大部分公司还是兼容老版本的IE,所以一般使用过渡型的html或者xhtml来声明文档类型,比较大的公司已经都使用html5的文档类型声明,它的效果与严格的html模式和xhtml模式一样,但是好处是节省代码,同时向前兼容