浏览器的渲染模式

1.什么是DOCTYPE?

     DOCTYPE是指文档类型,一个文档类型标记是一种标准通用标记语言的文档类型声明,它的目的是要告诉标准通用标记语言解析器应该用什么样的文档类型定义去解析文档。DOCTYPE还会对浏览器的渲染模式产生影响,不同的渲染模式会影响到浏览器对于CSS和JS脚本的解析,所以DOCTYPE是非常关键的,尤其是在IE系列浏览器中,由DOCTYPE所决定的HTML页面的渲染模式至关重要

2.有哪几种渲染模式?

    浏览器解析HTML的方式有三种:

  • 标准(非怪异)模式(standards mode)
  • 怪异模式(quirks mode)
  • 部分怪异(近乎标准)模式(almost standards)

    在标准模式下,浏览器会按照W3C的标准解析和渲染页面,在怪异模式(quirks mode)中则尝试模拟更旧的浏览器的行为。一些浏览器(例如基于Mozilla的Gecko渲染引擎的浏览器或者Internet Explorer 8在strict mode下)也使用一种尝试这两者之间妥协的近乎标准模式,实施了一种表单元格尺寸的怪异行为,除此之外符合标准定义。

   不含任何<!DOCTYPE>声明的页面会以怪异模式渲染

  HTML5提供的<Doctype html>是一种标准模式,向后兼容,等于开启了标准模式,那么浏览器会按照W3C的标准解析渲染页面,这样所有的浏览器里面显示的都是一个样子了。

3.IE8的兼容

   <meta http-equiv="X-UA-Compatible" content="IE=edge" />

    X-UA-Compatible是针对IE8新加的一个设置,对于IE8之外的浏览器是不识别的,这个区别与content="IE=7"在无论页面是否包含<!DOCTYPE>指令,都像是使用了 Windows Internet Explorer 7的标准模式。而content="IE=EmulateIE7"模式遵循<!DOCTYPE>指令。对于多数网站来说,它是首选的兼容性模式。
        为了避免制作出的页面在IE8下面出现错误,建议直接将IE8使用IE7进行渲染。也就是直接在页面的header的meta标签中加入如下代码:

Html代码  
  1. <meta http-equiv="X-UA-Compatible" content="IE=7" />  

        这样我们才能使得页面在IE8里面表现正常!
        浏览器市场份额的激烈竞争,给网页设计开发人员带来了兼容性设计的麻烦。仅IE浏览器就有好几个主流版本,IE6、IE7、IE8 等等。当然使用诸如 IETester,多版本 IE 共存解决方案之类的第三方集成工具,可以方便代码调试。但我们总需要找寻一种更为省时省力的方法。
        X-UA-Compatible 是针对 IE8 版本的一个特殊文件头标记,用于为 IE8 指定不同的页面渲染模式。由于当下 IE6 和 IE7 使用率依然较高,综合考虑,启用 IE8 版本的 X-UA-Compatible 兼容模式显得相当重要。
        各种兼容模式代码示例如下:
1.<meta http-equiv="X-UA-Compatible" content="IE=5" />
像是使用了 Windows Internet Explorer 7 的 Quirks 模式,这与 Windows Internet Explorer 5 显示内容的方式很相似。

2.<meta http-equiv="X-UA-Compatible" content="IE=7" />
无论页面是否包含 <!DOCTYPE> 指令,均使用 Windows Internet Explorer 7 的标准渲染模式。

3.<meta http-equiv="X-UA-Compatible" content="IE=8" />
开启 IE8 的标准渲染模式,但由于本身 X-UA-Compatible 文件头仅支持 IE8 以上版本,因此等同于冗余代码。

4.<meta http-equiv="X-UA-Compatible" content="edge" />
Edge 模式通知 Windows Internet Explorer 以最高级别的可用模式显示内容,这实际上破坏了“锁定”模式。即如果你有IE9的话说明你有IE789,那么就调用高版本的那个也就是IE9。

5.<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" >

如果IE有安装Google Chrome Frame,那么就走安装的组件,如果没有就和<meta http-equiv="X-UA-Compatible" content="edge" />一样。

说明:针对IE 6,7,8等版本的浏览器插件Google Chrome Frame,可以让用户的浏览器外观依然是IE的菜单和界面,但用户在浏览网页时,实际上使用的是Google Chrome浏览器内核。

6.<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
EmulateIE7 模式通知 Windows Internet Explorer 使用 <!DOCTYPE> 指令确定如何呈现内容。标准模式指令以Windows Internet Explorer 7 标准模式显示,而 Quirks 模式指令以 IE5 模式显示。与 IE7 模式不同,EmulateIE7 模式遵循 <!DOCTYPE> 指令。对于多数网站来说,它是首选的兼容性模式。

参考资料

http://bijian1013.iteye.com/blog/1978191;

https://leohxj.gitbooks.io/front-end-database/html-and-css-basic/doctype-and-brower-render.html

猜你喜欢

转载自www.cnblogs.com/monologueyuanmin/p/9758525.html