条件付きコメントでIE8をターゲットにできますか?
-
03-07-2019 - |
質問
IE8がリリースされたときに、次のコードが機能して条件付きスタイルシートが追加されますか?
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="ie-8.0.css" />
<![endif]-->
これがベータ版で機能するかどうかについて、矛盾するレポートを読みました。私は誰かが彼らの経験を共有できることを望んでいます。ありがとう。
解決
それは私のために&#8211;&nbsp;奇妙なモードと標準準拠モードの両方で機能しました。ただし、IE8互換モードに切り替えると 動作しません。
他のヒント
注意事項:
機能します。ページ/サイトを読み込む場合は ローカルネットワーク(イントラネットなど) IE7 モードで デフォルトで! (更新- localhost [*]は特別です標準モードで実行する場合)
これは、デフォルトでMSFTの標準に移行するという元のステートメントに反します。
e.g。
http://127.0.0.1/mysite/mypage.php <-- IE8 by default (updated!)
http://localhost/mysite/mypage.php <-- IE8 by default (updated!)
http://machinename/mysite/mypage.php <-- IE7 by default
http://192.168.100.x/mysite/mypage.php <-- IE7 by default
http://google.com/ <-- IE8 by default
[*]-コメントで指摘されたScott Dickens [MSFT] IEブログのでは、localhostがイントラネットの特別なシナリオ(インターネットサイトの開発によく使用される)であるため、デフォルトで標準モードでレンダリングされます。
IE8のページが実際にどのモードでレンダリングされているかをテストするには、開発者ツールを確認するか、このブックマークレットコードを使用できます(IE8でのみ動作します):
javascript:
var vMode=document.documentMode;
var rMode='IE5 Quirks Mode';
if(vMode==8){
rMode='IE8 Standards Mode';
} else if(vMode==7){
rMode='IE7 Strict Mode';
}
alert('Rendering in: '+rMode);
ツール/互換表示設定すべてのチェックを外します
ご協力ありがとうございます。私は解決策を発見しましたが、明らかに問題は各スタイルシートが独自のタイトル属性を使用することでした。メインスタイルシート以外のタイトルをすべて削除したら、問題はありません。
これはIE8に特有の奇妙な問題です。そのように動作するはずだと言われていますが、「スタイルシートの設定」に関係することです。 -問題を作成するのに役立つのは、スクリプトを作成する場合などに役立つ可能性があるタイトルを削除する必要があるためです-スタイルシートを呼び出す必要がある場合。
いずれにせよ、これがバグなのか、そうなのかはわからないが、Microsoftがさらに調査することを期待している。
ありがとう
なぜIE8用に別のスタイルシートを作成する必要があるのですか?
既にIE7のデバッグを行っている場合は、IE8を強制的に互換モードにすることができ、IE8がIE7であるかのようにコードを表示できます。
あなたがやらなければならないのは、この右を開始ヘッドタグの下に置くことです。それ以外の場所では機能しません。
そして、それはプロジェクトごとに平均で30分ほど作業が少なく、IE8の集中的なデバッグは必要ありません!
Msn.comでさえこれを行います-皮肉な感じですか?
最近それについてのブログ投稿を書きました: http://blog.sankhomallik.com/2009/11/16/stop-wasting-time-debugging- on-ie8-when-you-dont-have-to-or-get-ie8-to-behave-like-ie7 /
IE8はIE7と比較して非常にきれいにレンダリングされます。IE6、IE7、およびIE8のスタイルシートがあります。少し実験した後、IE8で条件付きコメントが機能していないと最初に思ったのは、祖先または親クラスを最初に置く必要があるという理由だけで、IE8によって適用されないルールがあることです。
のようなクラスがありました .niceclass {some:properties; more:properties;}
次のように変更した場合、のみ動作しました:
.parentclass .niceclass {some:properties; more:properties;}
または
#parentselector .niceclass {some:properties; more:properties;}
IE8専用のcssでは、優先ルールは1つしかありませんが、残りはほとんどFirefoxのようにレンダリングされますが、それでもFFを離れることはできません!
私は、cssを使用して丸い境界線を使用したいと考えていました。 VistaのIE8はそのようなものをサポートしていません。また、グラフィックは丸い境界線も丸い影を表示するようになっているため、IE8ではページがひどく見えました。
条件付きコメントを使用しようとしましたが、IE8はif IE式を評価せず、外部スタイルシートを含めませんでした。
次に、それを奇抜/互換モードにすることを検討しましたが、使用していたCSSハックがIE8で機能しなくなったため、これはまだ機能しませんでした。
最後になりましたが、少なくとも互換モードでページを正しくレンダリングするCSSハックを見つけました。
* + html #test[id] { color:lime }
現在、これがIE7以下で機能するかどうかはわかりません。したがって、少なくとも3つは サポートしたいIEのリリースごとに異なるハック、例:
* + html #test,
html+body #test,
* html body #test
{ color:lime }
Internet Exploiterの次のリグレッションは、私たちにとってどのようなものでしょうか。