CSS を介して IE8 のスタイリングをハックする最善の方法を誰かが推奨できますか?
7 に答える
方法を逆にする必要があります。まず、最新のブラウザー (Firefox、Chrome、Opera、IE 9 など) でサイトが適切に表示される必要があります。その後、他のブラウザーについて心配することができます。
他の人が示唆したように、条件付きコメントはあなたの友達になることができます。
まず、最新のブラウザーで適切に表示されるように CSS を開発する必要があります。次に、IE8 をチェックして、どのような問題が発生するかを確認します。必要に応じて、IE 固有のスタイルシートを含めます。その後、IE7 をチェックインし、サポートしている場合は IE6 をチェックインし、さらに修正を加えることができます。
例:
<link rel="stylesheet" href="normal.css" type="text/css" />
<!--[if lt IE 9]><link rel="stylesheet" type="text/css" href="ie8.css"><![endif]-->
<!--[if lt IE 8]><link rel="stylesheet" type="text/css" href="ie7.css"><![endif]-->
この場合normal.css
、最新のブラウザ用のものを含めます。奇妙な IE8 の問題がいくつか見つかったので、ie8.css
問題を修正します。すべてのセレクターをこれに含める必要はなく、修正が必要なものだけを含める必要があります (値は IE 8 以前ではオーバーライドされます)。その後、IE7 にまだいくつか奇妙な点がある場合は、ie7.css
それらを追加して修正することができます。
条件付きコメントの使用法に関する詳細については、他の人が提供したリンクを参照してください。
最後に: making IE8 render as IE7 for ease
は決して良い考えではなく、避けるべきです。IE7 は遠い過去 (IT の世界では IE8 も遠い過去のはずです.オーディエンスとビジネス プラン)。
条件付きコメントを使用します。
投稿された他の回答として、条件付きコメントを使用できますが、ユーザーがIE8を使用している場合、HTTPリクエストが1つ追加されます。css ファイルで \0 ハックを使用できます
img{
width:200px;//other broswers
width:100px\0;//only IE8
}
あなたが望むものをもう少し説明できますか?
一般に、IE8 は標準と完全に互換性があるため、HTML ドキュメントが標準モードであることを確認し、IE8 に他のブラウザーと同じスタイルシートを指定してください。
IE が動作していない場合、最良の解決策は、条件付きコメントを使用して IE に別のスタイルシートを与えることです。
私は IE10 以下の CSS スタイルに適したオプションを探していました (ただし、IE8 でのみ機能します)。読みやすさのために余分なスタイルシートは必要なく、このアイデアを思いつきました。
<!--[if lt IE 10]><div class="column IE10-fix"><![endif]-->
<!--[if !lt IE 10]><!--><div class="column"><!--<![endif]-->
私は自分の div または追加のクラスで必要なものを宣言します。これにより、非常に読みやすい方法で同じスタイルシートに追加の CSS を含めることができます。
これは W3C で有効であり、変な CSS ハックではありません。
ie7-js Javascript ライブラリを使用すると、古いバージョンの IE が、HTML と CSS を処理する適切なブラウザーのように動作するようになります。次に、他の人が示唆しているように、Chrome、Firefox、Opera などの最新バージョンで適切に動作する標準に準拠した方法でコードを記述します。
ie8 のみ: 最善の方法は
body{background:#f00\0/;}
\0/ は Ie8 CSS ハックです