TIPS:對于完全放棄IE的幸福開發者,以下内容全是廢話,建議跳轉到 部落格園 着頁,尋找更優質的文章。
對于前端開發來說IE一直是心裡的痛,不管你覺得做的多好的網頁,放到它上面總會有一些意想不到的問題發生,是以你不得不針對IE單獨做些手腳,你就有必要知道一些IE浏覽器下的hack寫法。
比較常用的幾個hack(目前大多公司都隻要求相容到IE8,稍微變态點的也就是IE7下沒大的錯位就行了,下面hack足以):
9 像如:6.5em;8em9;在ie7-ie10寬度是8em;
像如:6.5em;8em;在ie8-ie11寬度是8em;
* 像如:6.5em;*8em ie7以下會寬度是8em
針對IE11還可以通過以下媒體查詢的方式來解決IE11下的問題:
@media screen and(-ms-high-contrast:active),(-ms-high-contrast:none) {
div{8em;}
}
加上以上代碼可以讓IE11下div的寬度為8em,為了避免IE低版本下也會認識這一媒體查詢,最好在screen前加上only。
在IE浏覽器下,特别是IE8以下個人感覺真真沒必要去太折騰(win7的最低配置都是ie8了),但是為了更好的體驗,可以針對IE8以下浏覽器給出一個友善的更新提示也是很不錯的,IE下的條件注釋語句值得擁有:
//ie7及以下會提示使用者去更新浏覽器
<!--[if lte IE 7]>
<div class="browser-upgrade">你的浏覽器版本過低,請到<a href="http://browsehappy.com" class="browser-upgrade__link">這裡</a>更新,以擷取最佳體驗!</div>
<![endif]-->
條件語句還有更多用途,在使用html5新增标簽頁面可以針對IE低版本引入htmlshiv讓低版本浏覽器也能識别html新增标簽:
<!--[if lt IE 9]>
<script type="text/javascript" src="http://www.ijquery.cn/js/html5shiv.js"></script>
<![endif]-->
ie的條件語句常用的有幾下幾種(所有條件注釋語句在非IE浏覽器下都是普通的注釋,不要用非ie去給非IE的浏覽執行操作):
lt :就是Less than的簡寫,也就是小于的意思。
lte :就是Less than or equal to的簡寫,也就是小于或等于的意思。
gt :就是Greater than的簡寫,也就是大于的意思。
gte:就是Greater than or equal to的簡寫,也就是大于或等于的意思。
!:就是不等于的意思,跟javascript裡的不等于判斷符相同。
<!--[if IE]>
隻有IE才支援
<![endif]-->
<!--[if !IE 7]>
IE7不支援
<![endif]-->
<!--[if lt IE 8]>
IE8以下浏覽器才支援
<![endif]-->
<!--[if lte IE 8]>
IE8及以下浏覽器才支援
<![endif]-->
<!--[if gt IE 8]>
IE8以上浏覽器才支援
<![endif]-->
<!--[if gte IE 8]>
IE8及以上浏覽器才支援
<![endif]-->
好好運用上面的方法解決你項目中的IE别樣BUG吧。