0

良い一日、

2つの異なるCSSコードを適用して、IE8のフォントレンダリングの問題(太字)を修正したいと思います。IE8は、同じ名前の場合、すべてのフォントファミリーを認識できず、最初のフォントファミリーのみを認識します。だから私はそれを修正するために条件付きコメントを使用しようとしています:

最初のコードは古いバージョンのIE(IE8を含む)用です:

<!--[if lte IE 8]>
     <link href="IE8fonts.css" rel="stylesheet" type="text/css">
<![endif]-->

2つ目は、IE9、IE10、およびすべての非IEブラウザー(Chrome、Firefox、Opera、Safari ...)用であり、これらのいずれにもこの偽の大胆な問題はありません。

<!--[if IE 9 | !IE]><!-->
     <link href="fonts.css" rel="stylesheet" type="text/css">
<!--<![endif]-->

私は最初のコードが正しいことを知っています(または:pではないかもしれません)ので、2番目のコードも正しいかどうかを知りたいです。IEで互換モードを変更したときに期待するものが得られないため、確かに何かが間違っています条件[IE9の場合| !IE]また、これら2つの条件付きコメントを配置する正しい順序(存在する場合)を知りたいです。私は互換性に関連するものは何でも初心者なので、これを手伝ってください:/

4

2 に答える 2

1

最初にIE9+および他のブラウザーにcssを適用し、次にIE8以下に条件付きコメントを適用することができます。そのため、ブラウザーがIE8以下の場合、font-familyinfonts.cssのルールはのルールによってオーバーライドされます。IE8fonts.cssこのようにして、複雑で不要な条件付きコメントを回避できます。

<link href="fonts.css" rel="stylesheet" type="text/css">
<!--[if lte IE 8]>
     <link href="IE8fonts.css" rel="stylesheet" type="text/css">
<![endif]-->

それが役に立てば幸い。

于 2013-03-06T23:41:27.503 に答える
0

条件付きコメントはIE固有の機能です。他のブラウザは、それらを通常のコメントとして扱います。HTMLコメントはで始まり、<!--で終わることに注意してください-->。したがって、これ<!--[anything]>は通常のコメントの始まりであり、IE以外のユーザーエージェントは、その後、が発生するまで何も無視し-->ます。一方<!--[anything]><!-->、完全なコメントであり、非IEブラウザはその後の処理を行います。

だから私はあなたが使用することをお勧めします:

<!--[if gte IE 9]><!-->
  <link href="fonts.css" rel="stylesheet" type="text/css">
<!--<![endif]-->

通常のHTMLパーサー(非IE)の観点からは、これはリンク要素を囲む2つの通常のコメントです。

于 2013-03-06T23:37:11.030 に答える