我就說說本身的見解啊,不對的請指正。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能夠使用媒體查詢,實現響應式開發。