太上老俊

doctype和Quirks模式

doctype:

  告诉浏览器使用什么模式去渲染页面,可能会影响页面的css渲染和js代码的执行。

DTD :为了兼容旧的浏览器渲染方式,将DTD作为参数告诉浏览器使用什么模式渲染页面。始于IE6;

 

 

1、什么是混杂模式、什么是标准模式

  混杂模式是一种向后兼容的解析方式,是实现IE5.5以下版本浏览器的渲染模式。不可取,无兼容性可言。

  标准模式是一种要求严格的DTD,根据web标准去解析页面的模式。

  近标准模式:尽可能遵循最新标准的情况下,兼容部分非标准的代码,如弃用的标签等。

 

2、两种模式的区别

  • 盒模型的解析:混合模式盒模型的宽高=内容的宽高;标准模式盒模型的宽高=内容的宽高+padding的宽高+border的宽高。

      混合模式:boxWidth = contentWidth

      标准模式:boxWidth = contentWidth + padding*2 + border*2

 

  诡异模式下(Quirks模式),IE的宽度和高度包括了padding和border。 

  • 当一个块元素div中包含的内容只有图片时,在标准模式下,不管IE还是标准,在图片底部都有3像素的空白。但在混杂模式下,标准浏览器(Chrome)中div距图片底部默认没有空白。

  行内元素的高度:

      标准模式下:行内元素设置宽高无效;怪异模式下:有效;

  margin:0 auto;设置水平居中:

      标准模式:会使元素水平居中;怪异模式:无效

  text- align:center:

      IE6/7及IE8混杂模式(quirks模式)中可以使块级元素也居中对齐。其他浏览器中,text-align:center仅作用于行内内容上。

    解决这个问题比较好的方式,就是为所有需要相对父容器居中对齐的块级元素设置“margin:0 auto”。但这个方式 IE6/IE7/IE8的混杂模式中不支持,所以还要设置父容器的 "text-align:center;"。

 

      

 

 

3、判断两种模式

    document.compatMode=="CSS1Compat" //标准模式

    else   //混合模式

 

posted on 2018-01-09 15:09  太上老俊  阅读(134)  评论(0编辑  收藏  举报

导航