[英]target ie8 and ie9 only (not ie7)
我有一個簡單的頁面,除了ie8和ie9將我的一個元素向右移動1px之外,其他所有東西都工作正常,它的有效b / c導致在黑色背景上直線出現1px白線。 可怕。 我已經嘗試了很多CSS hack,例如條件注釋,但是<!--[if gt IE 7]>
或<!--[if gte IE 8]>
都無法正常工作。 僅識別<!--[if gte IE 7]>
也將ie7作為目標-但ie7可使頁面像素完美。 因此,我嘗試通過附加注釋<!--[if IE 7]>
回退ie7的更改,但這會在以后的ie中終止修復。 IE8和9似乎認為它們是IE7。
到目前為止我的代碼
<!--[if gte IE 7]>
<style>
#promo {margin-left:-1px;}
</style>
<![endif]-->
編輯:已解決,看來這是IETester中的錯誤,在正確安裝的資源管理器中一切正常。
我建議使用帶有IE條件注釋的實際樣式表。
本文提供了很好的概述,但是我會避免使用“ hacks”部分。
如果您只是需要碰碰一件事,還可以使用:
<!--[if IE 7 ]> <html class= "ie7"> <![endif]-->
<!--[if IE 8 ]> <html class= "ie8"> <![endif]-->
這將使html元素具有.ie7或.ie8類,具體取決於它們使用的是什么或指定的內容。 然后,您可以定位要覆蓋的對象,例如:
.ie7 #promo {margin-left:-1px;}
或
.ie8 #promo {margin-left:-3px;}
,然后分別定位它們。 您也可以為IE 9指定規則。
並將其包含在底部附近的主樣式表中。 這使您不必制作許多不同的樣式表。
至於IE9不能渲染為IE9的情況,我認為如果安裝Internet Explorer是出於我完全不知道的原因,它實際上將回退到以前的渲染器。 我認為Paul Irish在onTwik網站上關於HTML5 Boilerplate的演講中提到了這一點 。
他們在.htaccess
文件中使用一些代碼來強制IE使用最新的呈現引擎,並且如果安裝了IE,則實際上將強制IE使用Chrome引擎:
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
BrowserMatch MSIE ie
Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
</IfModule>
</IfModule>
您是否正在執行迫使IE8 / 9進入“兼容性視圖”的措施? 如果是這樣,那么您可能會不經意間告訴那些瀏覽器將自己視為IE7,至少在解釋那些條件時才是如此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.