随着技术日新月异的发展,我以为已经可以完全甩掉ie浏览器,驰骋在新技术的海洋里。却不想,ie兼容问题如影随行。
当然,尝试解决ie浏览器兼容问题,并不代表我会去拥护它。我想做的只是为解决浏览器兼容提供一些个人思路,毕竟,很多公司还会有此类的需求。
一、明确你要兼容的浏览器范围
很简单,当你明确了要兼容的浏览器范围,不需要兼容的浏览器就可以一并处理了。例如:直接弹出提示,指引用户下载chrome,firefox等现代浏览器。简单粗暴,但却有效。
那么我们如何去过滤呢,这时候,条件注释就可以上场了,用法如下:
符号解释:
!(非):[if !IE] lt(小于):[if lt IE 6] lte(小于或等于):[if lte IE 6] gt(大于):[if gt IE 8] gte(大于或等于):[if gte IE 9] &(与):[if (gt IE 6)&(lt IE 8)] |(或):[if (IE 6)|(IE 7)]
嗯,不错,一大半的负担被卸掉了。
因为我足够幸运,只需要解决ie9浏览器的兼容问题。所以,可以这么写:
js中设置了cookie和url重定向,引导用户去下载chrome浏览器,这里就不细说了。
当然,兼容问题哪有这么容易就搞定的,我们继续往下走~
二、检查页面中的伪类和伪元素
这里还是以ie9示例,下面列出ie9对伪类的支持情况:
//ie9不支持的伪类和伪元素 :default :valid :invalid :in-range ut-of-range :required ptional :read-only :read-write ::before ::after ::first-letter ::first-line ::value ::choices ::repeat-item ::repeat-index
http://jartto.wang/2016/12/06/talk-about-ie-compatible-over-again/