11
  1. <!--[if lt IE 7 ]><html class="ie ie6" lang="en"> <![endif]-->HTML5 ドキュメントで、これと他の同様の IE コード行は何を意味しますか?

  2. 特定の css 機能を IE8 以前のバージョンと互換性を持たせる必要がある場合、上記のコード行またはその中に記載されている html クラスは役立ちますか?

  3. 2 番目の答えが「いいえ」の場合、この記事で説明されている条件付き IE スタイルシートを使用する必要があります。http://css-tricks.com/how-to-create-an-ie-only-stylesheet/

  4. 3 番目の回答も「いいえ」の場合、CSS 機能を古い IE バージョンと互換性を持たせるにはどうすればよいですか。参考になるウェブサイトやデモはとても役に立ちます!

4

4 に答える 4

11
  1. これは条件付き IE ステートメントです。それらは IE によってのみ読み取られます。他のブラウザは、それらを通常のコメントとして読み取ります。ステートメントの最初と最後にある<!--andに注意してください。-->IE には、このコメントを認識し、コメント内の内容を通常の HTML として使用する特別なコードがあります。上記の貼り付けたコードに具体的には、IE 条件文は ie6 のクラスを HTML タグに適用しています。このようにして、最初に css セレクターでそのクラスを参照することにより、特定の要素に対して IE のみのフォールバックを提供できます。たとえば.ie6 #header {}、IE6 クラスが存在する場合にのみヘッダーに適用され、そのクラスは条件ステートメントのために IE6 にのみ存在します。

  2. 上記と同じスタイルに従って、次のコードを使用します。<!-- [if IE 8]><html class="ie ie8" lang="en"><![endif]-->

  3. 必要に応じて IE スタイルシートを使用することもできますが、どちらの方法でも基本的に同じ結果が得られます。個人的には、HTML タグのクラスで上記の方法を使用し、通常は ie.css と呼ばれる別の css ファイルをロードします。このファイル内には、IE スタイルしかありません。この方法では、条件付き IE ステートメントでスタイルシートを設定する必要がないことに注意してください。分離されたスタイルシートであることの本当の目的は、組織的な目的のためだけです。また、中程度から大量の IE 条件付きコードがある場合にのみ、これを行います。最小限の IE フォールバック コードがある場合は、マスター スタイルシート内で修正するコードの横にコードを含めるだけです。

  4. ModernizrSelectivizrなどを使用して、IE サポートをある程度拡張することもできます。

于 2013-09-13T13:43:03.900 に答える
3

質問で説明したすべての例は、ブラウザーが IE (および IE のバージョン) であるかどうかを検出し、そこから対処しようとすることを目的としています。

これはベスト プラクティスとは見なされないことに注意してください。

ブラウザーの違いや不足している機能を処理する必要がある場合、それに対処する最善の方法は、ブラウザー検出ではなく、機能検出と呼ばれる手法を使用することです。

私がお勧めするのは、Modernizrというライブラリを検索することです。これは、あなたの質問のどのアイデアよりも、あなたがやろうとしていることのより良い出発点であることはほぼ間違いありません.

特定のブラウザ機能を修正するために、Modernizr チームは「ポリフィル」と呼ばれる追加ライブラリのリストも提供しています。サポートする必要がある機能を特定し、リストを調べて、必要な機能を実行するポリフィル スクリプトを見つけます。それらのいくつかは、Modernizr を介してロードするのが最適です。他のものは単独で実行できます。

絶対に最後の手段でない限り、ブラウザーまたはバージョンの検出を行うことは避けます。

ポリフィルを使用する際の注意点: 古いバージョンの IE では、多くのブラウザー機能が欠落しています。それらの大部分を実装するのに役立つポリフィル スクリプトもあります。ただし、すべてのポリフィルを単純に含めて、古い IE バージョンをより最新のブラウザーに変えることができるとは思わないでください。

単純な事実は、IE の古いバージョンは古くて遅いということです。ポリフィルを追加すると遅くなります。各機能を慎重に検討し、ポリフィルが本当に必要かどうかを判断する必要があります。それがなくてもサイトはまだ使用できますか?多くの場合、特定の機能を使用せずに古いブラウザーをそのまま使用する方がよいでしょう。

于 2013-09-13T13:47:37.063 に答える
0

1) Internet Explorer バージョン 7 以下を使用している場合は、このクラスを html タグ内に含めることを意味します。

2) はい、次のような CSS を使用できます。

html.ie.ie6 .someClass {
 color: red;
}

これは、IE がバージョン 7 以下の場合にのみ適用されます

3) それもできます。両方を組み合わせる必要がある場合もあります

4) 該当なし

于 2013-09-13T13:41:33.377 に答える