总结兼容ie8

来源:互联网 发布:javascript 隐藏鼠标 编辑:程序博客网 时间:2024/06/10 12:03

现在开发确实有必要去兼容ie8,根据统计用ie8内核的浏览器使用量占20%左右,为了兼容ie8,有一些需要注意的地方。

首先ie8肯定是不支持HTML5的,为了兼容可以加载一下使用htmlshiv的html5.js,在head里面,不然不起作用

<!–[if IE]>
<script>
(function(){if(e = “abbr,article,aside,audio,canvas,datalist,details,dialog,
eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,
output,progress,section,
time,video”.split(’,'),i=e.length;while(i–){document.createElement(e[i])}})()
</script>
<![endif]–>

这是它的代码,可以自己往上面添。基本上引入它可以解决html5的问题,video,audio这种是不能通过它来解决的,需要用到其他的插件兼容ie8。

其次是css3的问题,css2还好,基本都行,css3基本都不支持,如弹性盒子flex,二维三维变幻transfrom,过渡transition,rgba,opacity,渐变,圆角,伪元素等,flex主要用在div同行的布局,可以用浮动/display:table-cell/display:inline-block+vertical-align:top/等方式代替,动画效果,可以使用jquery的animate代替,animate只用在数字类的样式如width,height,xxx-size,定位margin padding等,像color,xxx-style不行。透明度用filter:alpha(opacity=xx)这个需要浏览器不能禁用avtivex插件,过渡主要也是用动画实现,这个过渡主要和2d3d变幻放在一起使用,从而替代jquery的动画,圆角border-radius,阴影box-shadow等可以用一个ie-css3.htc的东西代替,behavior:url(ie-css3.htc),用起来还有符合一些规范,必须是有定位position的,z-index必须比其他的高,不太方便,伪元素不支持,可以在父元素下加个子元素,判断在ie8下去修饰这个子元素,一样还有好多奇奇怪怪的兼容问题,如background的定位,填充问题,line-height等可以用<!--[if IE 8]><link><![end if]-->来加载额外的css,js文件重写样式从而去兼容,这个判断只会在ie下有用,其他浏览器就直接忽略,并且不受位置限制,可以写在文档的任何地方.

      总之开发时最好可以用ie8调试,没有ie8可以安装ie11,F12开发者模式右侧选择内核来开发,ie7,ie5个人认为不要再去管了,当然还有很多兼容性很好的框架如bootstrap等可以一次性解决所有问题,因为现在很多都是用div来布局,而不再用table,在不同设备下,div要做到响应式需要考虑的问题不少

原创粉丝点击