美文网首页
前端:兼容性问题与浏览器的内核及渲染模式

前端:兼容性问题与浏览器的内核及渲染模式

作者: 云沙前端 | 来源:发表于2016-05-04 22:04 被阅读0次

兼容性问题

目前市面上流行的浏览器有多种,这些浏览器在处理一个相同的页面时,表现或行为有时会有差异。这种差异可能很小,甚至不会被注意到;也可能很大,甚至造成在某个浏览器下无法正常浏览。我们把引起这些差异的问题统称为“浏览器兼容性问题”。

浏览器的内核

各品牌浏览器的内核是不同的,不同的内核处理同一段代码的时候思路不同。因此说,--浏览器间内核的差异是产生兼容性问题的根本问题--“内核”也称为“引擎”。常见的浏览器及其渲染引擎(又称排版引擎)、脚本引擎的列表如下:

关于浏览器内核的更多信息,请参考 维基百科 - 排版引擎 及 维基百科 - 网页浏览器比较 中的相关内容

浏览器工作模式

工作模式简介

浏览器的工作模式常被称为“渲染模式”。实际上浏览器不同的工作模式不仅对渲染有影响,对代码的解析以及脚本的行为也同样有影响。

从更广泛的角度来看,浏览器的工作模式的差异不仅体现在处理HTML页面的时候,处理XML及一些非WEB内容时也有模式上的差异。更多浏览器工作模式请关注Activating Browser Modes with Doctype

工作模式的来源及变迁

微软于2001年8月27日发布的IE6(Inrernet Explorer 6)增强了对CSS的兼容,这使得IE6对CSS的解析及渲染与它的前一个版本IE5.5有了很大的差别,如对盒模型的理解、表格尺寸的算法等。
为了保持良好的向后兼容性,微软为用户提供了一个“开关”,来决定浏览器的工作模式,这个“开关”就是页面顶端的DTD(Document Type Definition 全称为文档类型定义。主要是用来约束XML文件!详见DTD)。

某些DTD将使IE6工作在“标准兼容模式”(即“标准模式”),这种模式使用了IE6最新的处理方式,包括对CSS1的兼容及一些DHTML方面的增强。而另一些DTD,包括不设置DTD将使IE6工作在“向后兼容模式”(即“混乱模式”),这种模式对页面的处理是与IE5.5一致。这样可以保证对一些在IE5.5中表现良好的页面在IE6中也能达到同样的效果。
微软在后续推出的IE7和IE8中,也使用了上述“开关”,与IE6一样,在IE7,IE8的“混乱模式”下,对页面处理方式仍与IE5.5一致。因此可以说,IE系列的“混乱模式”,将浏览器的行为冻结在了IE5.5这个版本,虽然IE各版本的混乱模式也略有区别,但他们的本意都是向后兼容。
随着时间的推进和标准的进步,IE6、IE7的“标准模式”逐渐已经变得不候标准了,2009年3月19日发布IE8重新定义了“标准模式”,再次增强了对标准规范的支持,同时为了保持对IE7的兼容,IE8增加了一种工作模式:“接近标准模式”。于是,IE8的工作模式就分成了三种“标准模式”,“接近标准模式”,“混乱模式”。
目前所有主流浏览器对于向后兼容问题的处理都与IE系列一样提供了不同模式来保证向后兼容。
浏览器的工作模式就是在这种背景下诞生的,它很好的解决了浏览器对标准支持上的不断增强及对一些错误的修复修复而导致的向后兼容问题,但也将浏览器在不同情况下的表现及行为变得更加复杂多样。
通过以上的内容没我们可以得出结论:如果一个页面能使各浏览器都在“标准模式”下,那么各浏览器都尽量兼容标准,因此各浏览器之间表现出的差异是很少的。相反,如果一个页面使各浏览器都工作在“混乱模式”下,那么各浏览器都将尽量向后兼容,因此各浏览器之间表现出的差异将会最大化。

常见的doctype

相关文章

  • 前端:兼容性问题与浏览器的内核及渲染模式

    兼容性问题 目前市面上流行的浏览器有多种,这些浏览器在处理一个相同的页面时,表现或行为有时会有差异。这种差异可能很...

  • 浏览器兼容性问题总结

    浏览器兼容性问题总结 一、简介 浏览器内核主要包含两种引擎,一是渲染引擎,另一个是 js 引擎,常见的内核有 Tr...

  • 主流浏览器内核一览

    主流浏览器主要分为四个内核 360安全浏览器与QQ浏览器分极速模式与兼容模式,极速模式以Blink(Webkit)...

  • 360浏览器自动切换成兼容模式

    一些老的网站可能只兼容ie低版本浏览器,针对这个问题可以让360浏览器在载入网页时默认用兼容模式渲染 内核控制标签...

  • 浏览器兼容性问题及解决方案(JS部分)

    关于浏览器兼容性问题的姊妹篇《浏览器兼容性问题及解决方案(CSS部分)》请点击这里。 常见的JS兼容性部分的问题有...

  • JS、Jquery获取浏览器信息

    1、背景在做前端开发时,经常需要解决浏览器兼容性问题,要解决这个问题就先得判断浏览器类型及版本,本人做过几次,因为...

  • 相关引擎

    渲染引擎 浏览器内核,也就是“渲染引擎”,主要作用是:决定浏览器如何显示网页及网页格式的信息。 Trident内核...

  • 减少浏览器兼容性问题

    做为一个前端工程师,不少时间都在处理浏览器兼容性问题。本文对如何减少浏览器兼容性问题的方法做了些总结。 确定运行环...

  • 浏览器 控制台

    17.02.09 不同内核浏览器的差异以及浏览器渲染简介(转)浏览器内核及差异 17.02.11 Chrome 控...

  • 兼容性测试——五大主流浏览器及四大内核

    内容是转网上的,最近测试,客户反馈很多浏览器兼容性问题,就特别去搜集总结了一下,在做浏览器兼容的时候其实只要内核一...

网友评论

      本文标题:前端:兼容性问题与浏览器的内核及渲染模式

      本文链接:https://www.haomeiwen.com/subject/fpxdrttx.html