0

条件付きコメントを使用して、IE7を実際のブラウザーのように動作させるようにハッキングしようとしています。

しかし、ここ数日、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" />

..。

条件は次のとおりです。

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

IE7でも8でも認識されません。

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

次に、スタイルシートはIE7とIE8の両方でレンダリングされます。

何か案は?私は困惑しています。

4

2 に答える 2

0

IE8 が IE スタイルシートを読み取れないという問題があったため、現在はメイン スタイルシートに IE のクラスを追加することを好みます。とにかく、1 つのスタイルシートでコードを維持する方が簡単です。ポール・アイリッシュはそれをよりよく説明していますが、基本的にはこれを言います:

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

条件付きスタイルシートのリンクがどこにあったかを確認し、必要な IE 固有の変更ごとに ie クラスを css に追加します。したがって、パディングは通常 6 ピクセルですが、IE では 4 ピクセルにする必要があるとします。その div の css は次のようになります。

.someClass {padding: 6px;}
.ie .someClass {padding: 4px;}
于 2011-11-08T00:18:28.203 に答える
0

CSS ハックを使用して、メインのスタイルシート内からのみ IE7 をターゲットにすることもできます。

*:first-child+html { /* Apply IE7-only CSS here */ }
于 2011-11-08T03:43:57.007 に答える