在web開發過程中,我們不可避免地會遇到一個問題,那就是ie瀏覽器的兼容性問題。其中一個重要的方面就是ie的css內核問題,很多新的css特性在ie中并沒有被完全支持,于是我們需要使用一些兼容ie的內核的css代碼來處理這些問題。
一些兼容ie內核的css代碼可以通過獲取ie內核的版本來實現。以下代碼可以檢測ie的版本號:
var version = detectIE(); if (version === false) { console.log('不是ie瀏覽器'); } else if (version >= 12) { console.log('ie12或以上版本'); } else { console.log('ie' + version + '版本'); } function detectIE() { var ua = window.navigator.userAgent; var msie = ua.indexOf('MSIE '); if (msie >0) { // 如果是ie10或以下的版本 return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10); } var trident = ua.indexOf('Trident/'); if (trident >0) { // 如果是ie11的版本 var rv = ua.indexOf('rv:'); return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10); } var edge = ua.indexOf('Edge/'); if (edge >0) { // 如果是Edge瀏覽器 return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10); } // 不是ie瀏覽器 return false; }
比較典型的兼容性問題之一,就是盒模型的問題。在W3C標準中,盒模型的元素寬度和高度僅包括內容區域,而在ie中,元素的寬度和高度包括了內邊距(padding)和邊框(border)。
解決ie中盒模型問題的一種常見方法是使用以下的css代碼:
box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box;
以上代碼構成了一個兼容ie的盒模型的解決方案,將其應用于網站中的元素后,可以更好地控制元素的寬度和高度,從而避免了由于盒模型問題帶來的許多布局問題。