簡體   English   中英

僅定位ie8和ie9(不定位ie7)

[英]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”部分。

http://css-tricks.com/how-to-create-an-ie-only-stylesheet/

如果您只是需要碰碰一件事,還可以使用:

<!--[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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM