ie8/ie9/ie10/ie11 chrome firefox を区別するための CSS コード

ie8/ie9/ie10/ie11 chrome firefox を区別するための CSS コード

ウェブサイトの互換性のデバッグは本当に面倒です。今日のウェブサイト デザイナーは、以前よりもはるかに多くの作業を行う必要があります。これは、ウェブ ページのコードが IE6 のアクセスを満たす必要がなくなり、多くのブラウザーのアクセスを満たす必要があるためです。大まかに言えば、現時点では少なくとも IE8、IE9、IE10、IE11、Chrome、Firefox のブラウザ要件を満たす必要があります。360 は Chrome カーネルを使用しているため、Chrome の要件を満たしていれば、基本的に 360 の要件も満たしています。 IE ファミリーにはさまざまなバージョンがありますが、なぜ IE はそんなにも細かい変更を好むのでしょうか?これは Web デザイナーにとって大きな問題です。今日は、これらの主要ブラウザの CSS ハック コードをまとめます。

たとえば、既存の CSS コードは次のようになります。

.divコンテンツ{
    背景色:#eee;
}

それでは、コードをいくつかの主流ブラウザと互換性を持たせる方法を書き留めてみましょう。

/* IE8+ */
.divコンテンツ{
    背景色:#eee\0;
}
/* IE8、IE9 */
.divコンテンツ{
    背景色:#eee\8\9\0;
}
/* IE9 */
.divコンテンツ{
    背景色:#eee\9\0;
}

\8\0 構文は間違っているので、この方法で IE8 をハッキングしないでください。上記のコードは IE10 と IE11 を個別にハッキングするものではありません (これら 2 つのブラウザーを個別にハッキングする方法はないようです)。そのため、IE10 と IE11 では IE8+ スタイルが使用されます。

IE ファミリーがハッキングされました。では、Chrome と Firefox ブラウザをハッキングする方法を見てみましょう。

/* クローム */
@media screen および (-webkit-min-device-pixel-ratio:0) {
    .divコンテンツ{
        背景色:#eee;
    }
}
/* ファイアフォックス */
@-moz-ドキュメントのURLプレフィックス() {
    .divコンテンツ{
        背景色:#eee;
    }
}

さらに、このように他のブラウザをハッキングすることもできます

/* Chrome と Opera */
@media すべておよび (最小幅:0) {
    .divコンテンツ{
        背景色:#eee;
    }
}
/* IE9+ */
@media すべておよび (最小幅:0) {
    .divコンテンツ{
        背景色:#eee;
    }
}
/* IE10+ */
@media screen および (-ms-high-contrast: アクティブ)、(-ms-high-contrast: なし) {
    .divコンテンツ{
        背景色:#eee;
    }
}

このようなハッキングを行うと、Web サイトのブラウザの互換性の問題は完全に解決されます。

CSS で IE と Chrome を区別する

/***** スタイルハック ******/

/* IE6 */
 _色: 青;

/* IE6、IE7 */
 *color: blue; /* または #color: blue */

/* IE6以外のブラウザ*/
 色/**/: 青;

/* IE6、IE7、IE8 */
 色: 青\9;

/* IE7、IE8 */
 色/*\**/: 青\9;

/* IE6、IE7 -- !important として使用 */
 color: blue !ie; /* !後の文字列は任意の文字列にすることができます*/

/***** セレクターハック ******/

/* IE6以下*/
* html #uno { 色: 赤 }

/* IE7 */
*:first-child+html #dos { 色: 赤 } 

/* IE7、FF、Saf、Opera */
html>body #tres { 色: 赤 }

/* IE8、FF、Saf、Opera (IE 6、7 以外のすべてのブラウザ) */
html>/**/body #cuatro { 色: 赤 }

/* Opera 9.27 以下、Safari 2 */
html:first-child #cinco { 色: 赤 }

/* サファリ 2-3 */
html[xmlns*=""] body:last-child #seis { 色: 赤 }

/* Safari 3+、Chrome 1+、Opera9+、FF 3.5+ */
body:nth-of-type(1) #siete { color: red }

/* Safari 3+、Chrome 1+、Opera9+、FF 3.5+ */
body:first-of-type #ocho { color: red }

/* saf3+、chrome1+ */
@media screen および (-webkit-min-device-pixel-ratio:0) {
 #diez { 色: 赤 }
}

/* iPhone / webkit カーネル モバイル端末*/
@media screen および (最大デバイス幅: 480px) {
 #veintiseis { 色: 赤 }
}

/* Safari 2 - 3.1 */
html[xmlns*=""]:root #trece { 色: 赤 }

/* Safari 2 - 3.1、Opera 9.25 */
*|html[xmlns*=""] #catorce { 色: 赤 }

/* IE6-8以外のブラウザ*/
:root *> #マルメロ { 色: 赤 }

/* IE7 */
*+html #dieciocho { 色: 赤 }

/* Firefox のみ。1+ */
 #veinticuatro、x:-moz-any-link { 色: 赤 }

/* Firefox 3.0 以降 */
 #veinticinco、x:-moz-any-link、x:default { 色: 赤 }

上記は、IE8/IE9/IE10/IE11 Chrome Firefoxを区別するためのCSSコードの詳細な内容です。IE11 Chrome Firefoxを区別するためのCSSの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

<<:  Vueのprops設定の詳細な説明

>>:  コード標準では、SQL ステートメントに結合が多すぎないようにする必要があるのはなぜですか?

推薦する

Docker プライベート ウェアハウスを構築する (自己署名方式)

作成したイメージを一元管理し、サービスの展開を容易にするために、プライベート Docker リポジト...

Angularルーティングサブルートの詳細な説明

目次1. サブルート構文2. 例1. 2つの新しいコンポーネントを作成し、その内容を変更する2. ル...

埋め込みJavaScriptと外部リンクの基本的な応用方法

目次埋め込みJavaScriptと外部リンクの基本的な応用JavaScript の記述方法には、イン...

Apache Bench で Web ストレス テストを実装する方法

1. Apache Benchの紹介ApacheBench は、Apache サーバーに付属する W...

Tomcat の構成と最適化ソリューションの詳細な説明

サービス.xml Server.xml 構成ファイルは、コンテナー全体を構成するために使用されます。...

XHTMLタグには終了タグがある

<br />オリジナルリンク: http://www.dudo.org/article....

要素の属性を削除する JS removeAttribute() メソッド

JavaScript では、要素の removeAttribute() メソッドを使用して、指定され...

将来人気が出るであろういくつかのナビゲーション方向

<br />今は情報爆発の時代であるだけでなく、サービス爆発の時代でもあります。それはす...

時間別にグループ化された MySQL クエリ ステートメント

年、月、週、日グループによる MySQL クエリ1. 学年別検索 SELECT DATE_FORMA...

TypeScript 列挙型

目次1. 概要2. デジタル列挙2.1 逆マッピング3. 文字列の列挙4. const列挙5. まと...

Docker マイクロサービス用の ETCD クラスターの構築に関する詳細なチュートリアル

目次etcdの機能etcdが独自の高可用性クラスタを構築するには、主に3つの形式があります。今回構築...

nginx rewriteを使用してURLをリダイレクトする方法

最近仕事でnginxの設定を変更する必要が頻繁にあり、nginxでrewriteを使用する方法を学び...

JavaScriptを使用して独自のAjax関数を定義する

ネイティブJSによって開始されたネットワークリクエストは、クエリ文字列の形でサーバーに送信されるため...

MySQL 実行ステータスの表示と分析

MySQL のパフォーマンスに問題があると思われる場合は、通常、まずshow processlist...