0

私は単純なページを持っていますが、ie8とie9が私の要素の1つを1px右に移動し、その重要なb / cを除いてすべてが正常に機能し、黒い背景に1pxの白い線がまっすぐになります。最悪。私は多くのcssハック、つまり条件付きコメントを試しましたが、機能していない<!--[if gt IE 7]><!--[if gte IE 8]>、機能していません。認識されるのはie7のみ<!--[if gte IE 7]>で、ie7もターゲットになりますが、ie7はページのピクセルを完全なものにします。だから私は追加のコメントでie7の変更をロールバックしようとしました<!--[if IE 7]>が、これは後のieの修正を殺しました。Ie8と9は、ie7だと思っているようです。

これまでの私のコード

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

編集:解決しました。IETesterのバグのようです。正しくインストールされたエクスプローラーでは何でも正常に動作します。

4

3 に答える 3

0

IEの条件付きコメント付きの実際のスタイルシートを使用することをお勧めします。

この記事では概要を説明していますが、ハックのセクションは避けたいと思います。

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

于 2011-03-18T14:04:18.417 に答える
0

バンプする必要があるのが1つだけの場合は、次を使用することもできます。

<!--[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;}個別にターゲットにします。IE9のルールを指定することもできます。

そして、それをメインのスタイルシートの下部近くに含めます。これにより、さまざまなスタイルシートを作成する必要がなくなります。

IE9がIE9としてレンダリングされない限り、Internet Explorerは、私にはまったくわからない理由でインストールされている場合、実際には以前のレンダラーにフォールバックすると思います。Paul Irishは、onTwikWebサイトのHTML5ボイラープレートでの彼の講演でそれについて言及していると思います

彼らは.htaccessファイル内のいくつかのコードを使用して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>
于 2011-03-18T14:23:32.810 に答える
0

IE8 / 9を互換表示に移行させるようなことをしていますか?もしそうなら、少なくともそれらの条件を解釈するために重要である限り、あなたはそれらのブラウザに彼ら自身をIE7として考えるように無意識のうちに言っているかもしれません。

于 2011-03-18T14:27:22.537 に答える