Internet Explorer 8(IE8)の場合、次のCSSを使用します。
color : green;
IE9、IE6、7ではなく、IE8のみに影響するハックを適用したいと思います。
次のように、HTMLで条件付きコメントを使用します。
<!--[if IE 8]>
<style>...</style>
<![endif]-->
こちらをご覧ください: http://www.quirksmode.org/css/condcom.html
IEバージョンを確実にテストできます。また、他のブラウザーが混同されないことを確認できます。
メディアクエリを使用して、各ブラウザを分離します。
/* IE6/7 uses media, */
@media, {
.dude { color: green; }
.gal { color: red; }
}
/* IE8 uses \0 */
@media all\0 {
.dude { color: brown; }
.gal { color: orange; }
}
/* IE9 uses \9 */
@media all and (monochrome:0) {
.dude { color: yellow\9; }
.gal { color: blue\9; }
}
/* IE10 and IE11 both use -ms-high-contrast */
@media all and (-ms-high-contrast:none)
{
.foo { color: green } /* IE10 */
*::-ms-backdrop, .foo { color: red } /* IE11 */
}
参考文献
つかいます \0
。
color: green\0;
ただしdo IE9も除外したいので、条件付きコメントをお勧めします。このハックがIE9に影響するかどうかはまだ予測できません。
とにかく、IE8固有のハックの必要性は一度もありませんでした。解決したいIE8特有の問題とは何ですか?とにかくIE8標準モードでレンダリングしていますか?そのレンダラーはかなり良いです。
CSSで必要な小さな変更を使用する場合は、\ 9 IE8以下(IE6、IE7、IE8)を対象とします
.element {
color:green \9;
}
最良の方法は、次のようにHTMLで条件付きコメントを使用することです。
<!--[if IE 8]>
<style>...</style>
<![endif]-->
このようなことをすることはあなたのために働くはずです。
<!--[if IE 8]>
<div id="IE8">
<![endif]-->
*Your content*
<!--[if IE 8]>
</div>
<![endif]-->
CSSは次のようになります。
#IE8 div.something
{
color: purple;
}
既に示したハックを使用してから、IE7以下のハックを使用してオーバーライドすることはできませんか?
HTML要素にクラスを取得するさまざまな方法があり、どのIE競合しているバージョン: Modernizr 、 HTML 5 Boilerplate など-または独自のロールを実行します。その後、通常のCSSセレクターでそのクラス(例:.lt-ie9)を使用できます。ハックは不要です。 .lt-ie8セレクターを使用して戻ります。
IE8ネイティブブラウザのみの場合:
.classname{
*color: green; /* This is for IE8 Native browser alone */
}