浏览器css解析的两种模式

各浏览器解析css有两种模式:quirks mode怪异模式,strict mode标准模式

  1. 产生原因:历史原因,早期浏览器解析并未遵循w3c标准——quirks模式,随着w3c的标准越来越重要,仿照w3c标准解析css的模式——strict mode标准模式;其实还有一种 almost strict mode,例如almost strict mode中,img是块元素。大多数doctype触发的都是almost strict mode
  2. 区别:
    • 遵循的标准不同,对css的解释不同
    • 体现在对盒模式的解释上:strict mode 采用content-box方法计算元素的宽高(标准盒模型);quirks mode 采用border-box方法计算(ie6盒模型)
    • 设置行内元素的宽高:strict mode行内元素宽高设置无效,quirks有效
    • 设置水平居中用margin:0 auto:strict mode可以,quirks无效
    • 看其他资料:strict mode 中 table字体大小会继承父元素的,quirks中不会。
  3. 浏览器如果判断用哪种方式解析:看doctype声明
    • 没有doctype声明,采用quircks mode
    • 有doctype声明的,详情见末尾插入的表
      •  浏览器不能识别doctype,用strict mode
      •  使用html4以下(不含html4),使用quirks  mode
      •  大部分有doctype声明的,都使用strick mode
      •  ie6中,doctype声明前有一个xml声明<!xml version="1.0" encoding="iso-88590-1"?>,采用quirks mode  
  4. js中判断哪种模式:用document.compatMode
    • BackCompat:quirks mode
    • CSS1Compat:strict mode        
posted @ 2015-08-20 12:09  半夏微凉ysy  阅读(263)  评论(0编辑  收藏  举报