こんにちは
、ブラウザに応じてさまざまなスタイルを適用する CSS があり、(ブラウザが IE でない場合) CSS ファイル自体 (HTML または PHP ファイルではなく) でブラウザをテストしたいと考えています。
どうすればいいですか?これを使用する必要があります:
<!--[if !IE]>
<style>
//code
</style>
<![end if]-->
CSSファイルで???
こんにちは
、ブラウザに応じてさまざまなスタイルを適用する CSS があり、(ブラウザが IE でない場合) CSS ファイル自体 (HTML または PHP ファイルではなく) でブラウザをテストしたいと考えています。
どうすればいいですか?これを使用する必要があります:
<!--[if !IE]>
<style>
//code
</style>
<![end if]-->
CSSファイルで???
各ブラウザー固有のコードを個別のファイルに追加し、使用しているのと同じ条件を使用して必要なファイルをインポートすることをお勧めします。はい、条件は CSS の外側で実際の HTML ファイルの内側になります。
これらの条件付きコメントは IE 専用です。したがって、チェックし!IE
ても他のブラウザには何もしません;)
CSS に Javascript を挿入することができます。私はただ即興で、次のようなことができるかもしれません(jQuery):
if( !$.browser.msie ) {
$("#someLinkElement").attr( "href", "webkit.css" );
}
編集:IE以外のブラウザでも条件が保持されるようになりました
残念ながら、CSS 内で使用できる条件付きコメントに相当する構文はありません。条件付きコメントは、CSS ではなく HTML に対する Microsoft の拡張機能です。
ただし、CSS ファイルを PHP で記述し、PHP にそれを CSS ファイルとして提供させることもできます。
Internet Explorer 以外のブラウザーを検出するための条件付きコメントの構文が間違っていることに注意してください。次のものが必要です。
<!--[if !IE]>-->
<style>
//code
</style>
<!--<![endif]-->
これにより、IE からのコメント間のコードが非表示になります。
<html>
より良いアプローチは、ブラウザーのタイプ/バージョンに基づいてページの要素に特定のクラスを適用することです。次に、CSS ファイル内から特定のブラウザーをターゲットにすることができます。
これはまさにhtml5 ボイラープレート プロジェクトが行うことです。
<!doctype html>
<!--[if lt IE 7]>
<html class="no-js ie6 oldie" lang="en">
<![endif]-->
<!--[if IE 7]>
<html class="no-js ie7 oldie" lang="en">
<![endif]-->
<!--[if IE 8]>
<html class="no-js ie8 oldie" lang="en">
<![endif]-->
<!--[if gt IE 8]><!-->
<html class="no-js" lang="en">
<!--<![endif]-->
IE6 専用の CSS を作成するには、スタイルシートに以下を追加するだけです。
.ie6 .some-div {
margin: 0;
}
などなど。