由于当初微软放弃了进入W3C , 导致这一组织在Web技术标准上空有权威性、却基本不存在强制力 , 而2004年诞生的WHATWG(网页超文本技术工作小组) , 也更是让W3C的权威性大损 。 早在2004年时 , W3C试图抛弃HTML转向XHTML , 导致了苹果、Opera、Mozilla的不满 , 三家甩开W3C建立WHATWG开发了Web Applications 1.0 , 也就是现在的HTML 5 。
【浏览器|四大浏览器巨头联手,兼容性终于不再是问题】虽然到了2007年W3C接纳了WHATWG , 并同时将HTML 5作为Web技术的新标准 , 但W3C也就此失去了制定“标准浏览器”的能力 。
当初微软不加入W3C , 使得后者不采用IE的方案 , 而在IE掉队 , Chrome与Firefox崛起后 , 已经有大量开发者基于IE标准开发了大量的Web产品 , 让浏览器不得不用兼容模式来解决这一问题 。 再加上不同浏览器采用的内核不同 , 由于缺乏统一的开发标准 , 以及各大浏览器厂商为了凸显产品的特色 , 更是使得整个浏览器行业出现了百花齐放的状态 。
在过去很长的一段时间里 , 跨浏览器开发、并解决浏览器的兼容问题 , 成为了前端开发者最为头疼却必须要解决的问题 。 而他们所要面临的问题 , 就是开发者的代码运行环境本身并不掌控在自己手中(服务器端)、而是在客户端(用户的浏览器) , 因此也不得不尽一切可能去协调各式各样的浏览器 。
众所周知 , 在PC互联网时代 , 浏览器市场有四大内核 , 即微软IE浏览器的Trident内核、苹果Safari和谷歌Chrome的Webkit内核、Firefox浏览器的Gecko内核 , 以及Opera浏览器的Presto内核 。 不同内核代表着浏览器的渲染引擎不同 , 而渲染引擎又是负责取得网页内容(HTML、XML、图像)、整理信息(加入CSS样式等) , 以及计算网页显示方式 , 然后输出至显示设备的关键 。
不同浏览器内核不同的情况下 , 渲染逻辑自然也就不一样 , 就会导致同一份代码有的浏览器显示的正常、有的就不正常 。 例如 , 不同浏览器对HTM标记所具有的内外边距属性就有着不同的定义 , 对同一个网页元素重复设置多种样式时、处理优先级不一样 , 图片的位置设置在不同浏览器中显示效果不同等等 , 都是极为常见的 。
目前 , 业界最主流的解决方案是“css hack” , 而css (层叠样式表)则是用来表现HTML或XML等文件样式的计算机语言 , 是控制网站样式和布局的关键 , 也就是大家在浏览器上看到的网页显示效果 , 其实就是由css负责 。 由于不同厂商浏览器或某浏览器的不同版本对css的支持、解析不一样 , 就要求开发者来编写相应的css code 。 简单来说就是大力出奇迹 , 用因地制宜来解决问题 。
css hack将压力抛给了开发者 , 为此部分开发者会在网页上设置浏览器检测 , 针对某些(IE)浏览器甚至直接拒绝服务 , 以至于没有兼容模式的Edge(Trident内核)在遇到网页检测浏览器时 , 干脆就声称自己是Chrome 。 显然这不是一个完美的解决方案 , 但奈何W3C组织不给力、浏览器厂商又各有各的算盘 , 所以解决浏览器之间的兼容性问题也就被束之高阁了 。
那么 , 为什么在移动互联网时代、APP已经动摇了浏览器市场地位的当下 , 谷歌、微软、苹果和Mozilla又要携手来解决这一问题呢?
其实这是因为导致浏览器兼容性问题的历史包袱 , 现在已经不存在了 。 微软的IE11以及Edge已经彻底“寿终正寝”了 , 同时Mozilla的Firefox市场份额已不到4% , Opera浏览器更是放弃了自己的Presto内核、改用Webkit内核 , 并且Webkit内核也基本上已经一统整个市场了 。 至于说 , 谷歌与Opera合力研发的Blink内核 , 则是Webkit内核的硬分叉产物 , 两者拥有同一个源流 。
- 浏览器|区块链媒体宣发需要做好社群维护
- 工业互联网|苹果、谷歌、微软、火狐四大巨头首次联手,解决网页“乱码”问题
- 智能手机|忍无可忍,工信部终于出手,国产巨头们该收敛一下了
- 智能机器人|全球领先!关于智能机器人,国内科技巨头传来消息
- 极兔放弃内卷,去做国际快递巨头?
- 浏览器|新版Edge浏览器或将引入性能检测功能,提升运行速度
- 这四家浏览器巨头合作,解决网页适配问题
- 浏览器|2022必须拥有Chrome扩展程序 - 浏览器插件,让你上网效率翻倍
- 浏览器|平安惠普的坑你踩过吗?
- 3个山东人用互联网国外赚钱:济南走出隐形巨头,淄博黑马达40