0

IE7をハックして実際のブラウザのように動作するように条件付きコメントを使用しようとしています。IE7はIE8だと思いますか?

しかし、最後の数日間、IE7はそれを参照する条件文を無視し、IE8を対象とする条件にのみ応答します。

私のヘッダーがあります。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1 /DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="X-UA-Compatible" content="IE=8" /> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

...

条件文は次のとおりです。IE7または8のいずれかで認識しかし、それは

<!--[if IE 8]> 
<link rel="stylesheet" href="/css/ieHacks.css" type="text/css" media="screen" /> 
<![endif]--> 
だ場合ではありません

<!--[if IE 7]> 
<link rel="stylesheet" href="/css/ieHacks.css" type="text/css" media="screen" /> 
<![endif]--> 

次に、sty lesheetはIE7とIE8の両方でレンダリングされます。

アイデア?私は困惑している。

+0

奇妙な問題のようです。ライブの例がありますか? – user194076

+0

私はテストするIEを持っていませんが、 'IE'と' 8'の間のスペースを削除しようとしましたか? (これはもちろん、純粋な推測であり、野生の推測です。) –

+1

@David Thomas:スペースはそこにあると思います。 – BoltClock

答えて

0

私はIE8でIEスタイルシートを読んでいないので、私のメインスタイルシートにIE用のクラスを追加するのが好きです。とにかく1つのスタイルシートでコードを維持する方が簡単です。ポール・アイリッシュexplains it betterが、基本的には、この置く:あなたの条件付きスタイルシートのリンクだったし、その後、あなたのCSSにあなたが必要なすべてのIE固有の変更のため、すなわちクラスを追加

<!--[if IE]> <html class="ie"> <![endif]--> 

を。だから、そのdivのためのあなたのCSSは次のようになりますのは、あなたのパディングが正常に計6Pxあるとしましょうが、IEのためにあなたはそれが4PXする必要があります。

.someClass {padding: 6px;} 
.ie .someClass {padding: 4px;} 
+0

私はクラスを 'body'要素に追加したいと思います。 – Blender

0

あなたはまた、あなたのメインのスタイルシート内からIE7をターゲットにCSSハックを使用することができます:

*:first-child+html { /* Apply IE7-only CSS here */ } 
関連する問題