我就说说本身的见解啊,不对的请指正。css
浏览器就是2大派系,一个是其余浏览器,一个是IE(这TM就是个异端)。html
浏览器的区别主要就是4个部分了html5
1.对于各类元素margin和padding的默认值不同。css3
2.ie和其余浏览器的css盒模型不同,ie的width和height包括了padding和border,而其余浏览器的css盒模型才是标准的盒模型,height和width是指content的宽和高。es6
3.对于css3的支持程度不同。编程
4.对于ES5和ES6的支持程度不同。浏览器
5.html5的标签。babel
6.css3的媒体查询es5
对应解决方法:orm
1.引入normalize.css,能够统一各类元素的margin和padding等属性。
2.css3的一个属性box-sizing能够定义该元素以哪一种盒模型进行渲染。content-box为标准盒模型,border-box为IE的盒模型。
3.引入PIE.htc或者其余的可以使IE兼容css3的文件,可是都有局限性,没法彻底兼容css3的全部特性,具体的请自行度娘。
4.IE8是部分支持es5的,能够引入es5-shim.js。ps:不当心看到了es5-sham查了下他们的区别。es5-shim就是实现的是原生的ES5,而sham中实现了一些新的API。这样就能够使用es6编程再利用babel编译了。
5.引入html5shiv.js,能够让ie支持html5的标签。
6.能够引入Respond.js,使ie能够使用媒体查询,实现响应式开发。