web-dev-qa-db-ja.com

IE8のみのCSSハックはありますか?

Internet Explorer 8(IE8)の場合、次のCSSを使用します。

color : green;

IE9、IE6、7ではなく、IE8のみに影響するハックを適用したいと思います。

27
Jitendra Vyas

次のように、HTMLで条件付きコメントを使用します。

<!--[if IE 8]>
<style>...</style>
<![endif]-->

こちらをご覧ください: http://www.quirksmode.org/css/condcom.html

IEバージョンを確実にテストできます。また、他のブラウザーが混同されないことを確認できます。

43
Palantir

メディアクエリを使用して、各ブラウザを分離します。

/* 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 */
 }

参考文献

35
Paul Sweatte

つかいます \0

color: green\0;

ただしdo IE9も除外したいので、条件付きコメントをお勧めします。このハックがIE9に影響するかどうかはまだ予測できません。

とにかく、IE8固有のハックの必要性は一度もありませんでした。解決したいIE8特有の問題とは何ですか?とにかくIE8標準モードでレンダリングしていますか?そのレンダラーはかなり良いです。

15
BalusC

CSSで必要な小さな変更を使用する場合は、\ 9 IE8以下(IE6、IE7、IE8)を対象とします

.element { 
   color:green \9;
 }

最良の方法は、次のようにHTMLで条件付きコメントを使用することです。

<!--[if IE 8]>
<style>...</style>
<![endif]-->
8
Žiga

このようなことをすることはあなたのために働くはずです。

<!--[if IE 8]> 
<div id="IE8">
<![endif]--> 

*Your content* 

<!--[if IE 8]> 
</div>
<![endif]--> 

CSSは次のようになります。

#IE8 div.something
{ 
    color: purple; 
}
2
John Fisher

既に示したハックを使用してから、IE7以下のハックを使用してオーバーライドすることはできませんか?

HTML要素にクラスを取得するさまざまな方法があり、どのIE競合しているバージョン: ModernizrHTML 5 Boilerplate など-または独自のロールを実行します。その後、通常のCSSセレクターでそのクラス(例:.lt-ie9)を使用できます。ハックは不要です。 .lt-ie8セレクターを使用して戻ります。

0
thepeer

IE8ネイティブブラウザのみの場合:

.classname{
    *color: green; /* This is for IE8 Native browser alone */
}
0
Vel Murugan S