6

IE 9で条件付きスタイルを使用したいと考えていますが、メインのスタイルシート内に条件を設定したいのですが、2番目のスタイルシートを使用したり、HTMLページで参照したりすることはありません。現在、このコードをHTMLページに配置しています。これは、メインのスタイルシートの他のスタイルを上書きするために機能します。

<!--[if IE 9]>
<style>
nav li a:hover {
    text-decoration: underline;
    color: black;
}
nav .four a:hover{
    color:white;
}
</style>
<![endif]-->

ただし、CSSシートにこれらの条件を設定して、すべてを1つの場所に配置し、すべてのページでコードを繰り返す必要がないようにします。また、IE9専用のCSSを別途用意することも避けたいと思います。IE7-8用のCSSはすでに用意しています。私はこれをスタイルシートで試しました:

<!--[if IE 9]>

nav li a:hover {
    text-decoration: underline;
    color: black;
}
nav .four a:hover{
    color:white;
}
<![endif]-->

上記のコードは、IE 9用のmyに固有のものです( IE 9はテキストシャドウをサポートしていないためnav bar、修正されています)。nav bar

CSSスタイルシートでこれを行う方法はありますか?

4

3 に答える 3

6

条件付きコメントHTML 専用ですが、CSS で利用できます。HTML5Boilerplate は、クラスを html 要素に追加することでこれを行います (https://github.com/h5bp/html5-boilerplate/blob/master/index.html)

<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->

これにより、IE のみをターゲットにするために使用できるフックが得られます。

.lt-ie8 .my-style { color: red }
于 2012-11-16T04:11:24.537 に答える
0

これがあなたの求めていることをするためのすべての方法です。6番はあなたが何を求めているのかということです。9を11に変更するだけです。http://www.visibilityinherit.com/code/target-ie.php

于 2012-11-16T04:56:17.877 に答える
0

それは標準的に不可能です。IEの条件付きブロックは、HTMLWebページでのみ使用できます。

ただし、ブラウザベンダーは、Microsoftを含むcssパーサーに常に興味を持っています。したがって、cssハックと呼ばれるものがいくつかあります。これを使用して、一部のパーサーは一部のルールを解釈できますが、他のパーサーは解釈できません。

可能であれば避けるべきものであることに注意してください。スタイルシートはw3cに準拠しなくなり、「クリーンな」ソリューションではありません(IE6の暗黒時代に一般的だったダーティなレガシー回避策のようなものです)。

于 2012-11-16T03:58:57.960 に答える