2011-03-18 9 views
0

私は単純なページを持っていますが、ie8とie9以外はすべて正常に動作し、要素1pxは右側に移動し、重要なb/c結果は1pxの白線になります黒の背景に。恐ろしい。 私は多くのCSSのハックを試しました。条件付きのコメントですが、<!--[if gt IE 7]><!--[if gte IE 8]>のようなものは機能しません。 <!--[if gte IE 7]>だけが認識され、ie7もターゲットになりますが、ie7はページピクセルを完璧にレンダリングします。だから私は追加のコメント<!--[if IE 7]>とie7の変更をロールバックしようとしましたが、これは後でieの修正を殺しました。 I8と9は彼らがie7だと思っているようです。ターゲットie8とie9のみ(ie7ではない)

私のコード今のところ

<!--[if gte IE 7]> 
<style> 
#promo {margin-left:-1px;} 
</style> 
<![endif]--> 

EDIT:解決、何が正しくインストール探検家で正常に動作し、IETesterのバグであると思われます。

答えて

0

それはあなたがバンプする必要がただ一つのこと、あなたにも使用することができます場合は、次の

<!--[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は実際にはわからない理由でインストールされていると、実際には以前のレンダラーにフォールバックすると思います。私はポールアイリッシュがonTwikウェブサイトのhis talk on the HTML5 Boilerplateにそれを言及していると思います。

彼らは、最新のレンダリングエンジンを使用するためにIEを強制するために彼らの .htaccessファイル内のいくつかのコードを使用して、実際にそれがインストールされます場合はクロームエンジンを使用するためにIEを強制します

<IfModule mod_setenvif.c> 
    <IfModule mod_headers.c> 
    BrowserMatch MSIE ie 
    Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie 
    </IfModule> 
</IfModule> 
0

あなたはその力は何をやっていますIE8/9は互換性ビューに入りますか?もしそうなら、あなたは自分のことをIE7と考えるように、少なくともそれらの条件文を解釈する上で重要な限り、それらのブラウザに無意識に言わせることができます。

+0

私はhtml5 doctypeを使用しています - これは理由があります – Valerij

+0

IE7がIEの現在のバージョンであったときにHTML5が存在しなかったので、それ自体はありません。 – Pops

関連する問題