質問

  • CSSには@importがありますか?
  • IE6は * htmlセレクターのハックを理解しますか?

次のように組み合わせることは可能ですか

//*html @import url(ie6hacks.css);

または、場合によっては

//*html { @import url(ie6hacks.css); }

優れたブラウザはこれをスキップする必要がありますが、IE6でも動作しますか?ソリューションとしてどのように見えますか?通常のCSSのようにいように見えます。

役に立ちましたか?

解決

  

次のように組み合わせることは可能ですか

* html @import url(ie6hacks.css);

いいえ。 @importのようなat-ruleはセレクタではないため、他のセレクタと組み合わせることはできません。

アットルールをハックとして機能させる方法があります。例:

@import url(/* no! */iehacks.css);

はIE6 / 7によって読み込まれますが、他のブラウザでは読み込まれません。ただし、使用することはお勧めしません。この種のものは本当に壊れやすいものです。この特定の例も無効なCSSです。

ダニエルが言うように、ハック用に個別の.cssファイルが必要な場合、最良のアプローチは条件付きでリンクタグを含めることです。 “ * html”の美しさハックルールを同じスタイルシートに入れることができるということです。これは、少数のハックルールがあれば管理しやすくなります。とにかく別のスタイルシートを使用している場合、利点はありません。

IMO“ * html” IE6が唯一のハックであり、今日でもまだ使用することが合法です。すべてのボックスモデルはIE5と共に死んでいますブラウザは、IE7でさえ、一般的にはあまりにも優れているため、単純なハックで攻撃することはできません。それらを標的にすることができるいくつかのハックは、複雑すぎて壊れやすく、実際に使用するには無効です。

(Simplified Box Model Hackの発明者として、私は彼らに心からの良い気取りを言います。)

他のヒント

条件付きコメントを使用して必要なCSSだけを含めることができるのに、なぜその奇抜なハックに悩まされるのですか?

<!--[if IE 6]>
    <link rel="stylesheet" type="text/css" href="ie-6.0.css" />
<![endif]-->

一部のリソース:

@importを本当に使用する必要がある場合は、IEが@importルールの仕様に従っていないという事実を利用できます。通常、スタイルシートまたはスタイルタグで最初に考える必要があります。そうでない場合は完全に無視されます。ただし、IE6(少なくとも私がテストしたとき)は気にしません。これらの線に沿って、これを行うことができます:

<style type="text/css">
.NotARealClass { }

@import url("ie-style.css");
</style>

FF3(ie-style.cssのロードに失敗する場所)およびIE6(とにかくロードする場所)以外ではテストしていません。走行距離は異なる場合があります。

残念ながら、 * html ハックを使用して他のスタイルシートをインポートすることはできません。

ハッキングなどを説明する記事 IE固有のバグを攻撃するのに役立ちます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top