浅谈Web前端兼容性
前言
文章不介绍对兼容性的处理,浅谈IE浏览器的兼容性问题
兼容性
- 所谓解决兼容性,就是解决一段代码在不同浏览器上都可以正常运行,并且得到想看到的结果
- 引起兼容性的矛盾是每个主打的浏览器内核都不同如:IE浏览器,火狐浏览器,谷歌浏览器等这些都有自己开发的浏览器内核,因为内核不一样对应的渲染引擎,和js引擎也不一样。所以解决兼容性问题要从HTML,CSS,JavaScript上去考虑
- 讲其兼容性,本文最大的问题不是在于Chrome浏览器和Firefox上聊兼容问题,而是移步到经常说的IE兼容问题
IE内核为什么这么让人头疼,常说是IE兼容问题呢?
IE兼容问题是前端开发者的噩梦,在其他浏览器上好好的,用IE浏览器跑就一堆bug。
原因就在于它在盛行的时代占领了大量的市场份额,非常火,自己独来独往,没有和其他厂达成一定的规则,相关组织指定的标准也没有执行,导致市场份额大的它,很多企业要为这部分互联网用户能正常使用,要对IE浏览器进行兼容
IE浏览器的版本以及年份
现在网站还要考虑IE兼容问题吗?
- 既然IE从2013年停更了,现在2022年过去了快十年了,而且微软出的IE的替代品Edge内核都不是IE了。是否还有兼容性解决的必要?
一杯茶,一包烟,一个bug 改一天,我去兼容IE5,你去帮我兼容IE6,7,8… - 时间年限越长,IE兼容性问题越不用去解决,一个作品的淘汰与退出市场,代表用户会下跌,可能你从来电脑上不再有IE浏览器也罢,不过必须面对IE浏览器是停更不代表他消失这是一个事实,所以,当客户不需要的时候或者没打算做IE兼容,你就完全不用考虑了,不用像几年前前辈那样时时刻刻都要做好对IE的兼容,成为一个项目必须处理的东西。因为在停止更新后的几年,用户对IE浏览器的热爱并不可能从100人变到0人,何况20多亿的网民呢?
- 降低成本,跟上时代潮流,无疑是一个最好的选择。
- 不过对于一些老旧的,像数十年屹立不倒的医疗,政府,银行系统,这种一天不重构或者不放弃IE浏览器就一般要做兼容了。
疑问
像百度浏览器,和大部分国内浏览器用的都是IE浏览器作为内核的,如果只把IE兼容都关注到IE浏览器是不是太过于狭隘了?
- 不!假设浏览器用的都是IE内核,那么他对应的渲染器和JS渲染器是一样的,所以一样要处理IE兼容问题才可以正常这个浏览器显示。这个没毛病
- 但是百度浏览器,360等浏览器,他们并不像IE浏览器那样,他们有的浏览器内核可以互相切换,他们强大的优化可以使它们在采用IE内核也不影响。像360浏览器地址栏的哪里的小插件——小闪电就可以切换了,他们是很智能的。
- 你们想一想,我用的IE内核的浏览器都具备"自己兼容"问题了,我还要自己写代码去处理兼容吗?用户会打开浏览器看到有问题的页面吗?(可能有,但概率很小)
下面是360浏览器开启兼容模式的图