ie8 浏览器兼容性

最近在做一个静态页面,本来说好是要兼容ie9 ,写好了突然要兼容ie8, 听到这句话瞬间整个人都不好了。心里一千个不情愿. 省略一万字吐槽....

当前日期:2017-12-04

在最新版chrome浏览器版本测试页面渲染,布局没有问题。使用window10 系统自带的ie浏览器,打开控制台,将浏览器版本切换到ie9 , 测试页面,没有问题,看来ie9 浏览器的兼容性还是可以的。

切换到ie8 版本浏览器, 整个页面布局瞬间混乱,发现所有div 布局使用了浮动的元素全部飞了。于是想到是不是清除浮动有兼容性问题。

清除浮动代码如下:参考bootstrap清除浮动的方式

.clearfix::after {
    display: block;
    clear: both;
    content: "";
}

于是问度娘,ie8 是不是不支持::after 伪类,答案果然是

第一个兼容性问题:ie8 不支持::after 伪类、ie8 不支持::after 伪类、ie8 不支持::after 伪类,重要的事情说三遍。
解决方案: 使用其他方式,overflow:hidden;,当初没有使用这个是因为,当需要滚动条时,使用这个css属性带来的副作用就是,元素溢出隐藏,没有滚动条,当不需要滚动条时,推荐这种方式。

想到伪类,我也使用了 :first-child, :last-child ,是不是也有兼容性问题,查看布局,果然有问题,但问题有点奇怪。:first-child 伪类没有问题,只有:last-child伪类有问题。这个设计到底是因为什么,有点蛋疼。

第二个兼容性问题:ie8 不支持:last-child 伪类。
解决方案:不使用:last-child,添加其他选择器,使用class,或者id选择器

第三个浏览器兼容性: ie8 使用背景图片异常,background-repeat: repeat no-repeat; 属性失效。
解决方案:讨好美工妹子,对背景图片进行加工,图片高度为父元素的高度,上下间隔留白。

1512392200(1).jpg

第四个兼兼容性:ie8 不支持 border-radius: 2px ; 属性。
无解决方案

ie8 浏览器使用 chart.js 报错,chart.js不支持ie8,官方文档提示支持ie8+ , 但使用最新版本,2.7.0 版本,ie9也报错,调试了很久,很多种方案。推荐解决方式如下。

第五个兼容性: ie8 浏览器使用 chart.js 报错,chart.js不支持ie8。
解决方案: 使用百度echart.js , 官方文档注明兼容ie8。

目前使用:echart3.8.4(使用压缩版本echart.min.js在ie8 浏览器会报错,原因不明,使用echart.js 不压缩的版本不会报错,这个好奇怪的,但不压缩的版本js文件大小有2.2M哦,晕,于是各种版本进行测试,最终选择使用echart.commont.js版本,1.2M,它对应的压缩版本在ie8也是会报错,先使用这个版本,找个时间使用webpack 自己对这个文件进行打包,看看看能不能解决)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一:在制作一个Web应用或Web站点的过程中,你是如何考虑他的UI、安全性、高性能、SEO、可维护性以及技术因素的...
    Arno_z阅读 5,019评论 0 1
  • 一、基本选择器 回顾选择器 通配符选择器、元素选择器、类选择器、ID选择器、后代选择器 新增基本选择器 子元素选择...
    越IT阅读 4,932评论 0 3
  • 什么是浏览器的兼容问题: 同一份代码有的浏览器效果正常,有的不正常。由于不同的浏览器对CSS的支持及解析结果不一样...
    我要认真学前端阅读 4,030评论 0 2
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 我有的时候说规划重于行动,有的时候说,先做起来再说,完成好于完美。 哪个才对呢? 很多事没有唯一的答案,任何行为都...
    快乐的老周阅读 3,325评论 0 0

友情链接更多精彩内容