Frage

  • CSS hat @import, nicht wahr?
  • IE6 versteht *html selector Hack, nicht wahr?

Ist es möglich, sie wie

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

oder möglicherweise

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

Gute Browser müssen diese überspringen, wird es noch in IE6 arbeiten? Wie sieht es als eine Lösung? Ich kann deutlich sehen, es als normal CSS hässlich aussieht.

War es hilfreich?

Lösung

  

Ist es möglich, sie wie

zu kombinieren
* html @import url(ie6hacks.css);

Nein. at-Regeln wie @import ist nicht Selektoren, so kann nicht mit anderen Selektoren kombiniert werden.

Es gibt Möglichkeiten, um an-Regeln wie Hacks arbeiten, zum Beispiel dieses:

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

wird von IE6 / 7, aber nicht den anderen Browser geladen werden. Allerdings würde ich nicht empfehlen, es zu benutzen; diese Art der Sache kann wirklich zerbrechlich sein. Dieses spezielle Beispiel ist auch ungültig CSS.

Wie Daniel sagt, wenn Sie separate CSS-Dateien für Hacks wollen, ist der beste Ansatz ist ein bedingt Inklusions Link-Tag. Die Schönheit der „* html“ ist, dass Sie Hack-Regeln im selben Sheet setzen kann, die einfacher zu handhaben ist, wenn es nur ein paar von ihnen sind; wenn Sie trotzdem einen separaten Stylesheet mit, es bietet keinen Vorteil.

IMO „* html“ für IE6 ist der einzige hacken es noch legitim ist heute zu verwenden. All das Box-Modell Material ist tot zusammen mit IE5 - vorausgesetzt, Sie sind nicht IE6 Quirks-Modus verwenden, die Sie sollten nicht - und die anderen Browser, auch IE7, ist in der Regel zu gut, um die Lage sein, mit einem einfachen Hack angreifen; die wenigen Hacks, die sie sind zu komplex / fragile / ungültig wirklich verwenden.

Ziel kann

(Und als Erfinder des vereinfachten Box Model Hack, sage ich ein herzliches riddance zu ihnen.)

Andere Tipps

Warum mit diesem verrückten Hack stören, wenn Sie bedingte Kommentare verwenden könnten nur die CSS schließen Sie brauchen?

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

Einige Quellen an:

Wenn Sie wirklich verwenden @import müssen Sie sich die Tatsache zunutze nehmen, dass der IE nicht folgen Spezifikationen für die @import Regel. Normalerweise muss es sein, denken die erste in einem Stylesheet oder Style-Tag, oder es ist völlig ignoriert. Allerdings IE6 (zumindest, wenn ich es getestet) scheint nicht zu kümmern. Entlang dieser Linien, können Sie dies tun:

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

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

Beachten Sie, dass ich dies neben FF3 in etwas nicht getestet und IE6 (wo es ie-style.css nicht geladen werden kann) (wo es lädt es sowieso). Ihre Ergebnisse können variieren.

Leider kann der *html Hack nicht importiert andere Stylesheets verwendet werden.

Hier ist ein Artikel zu erklären, dass Hack und andere das ist nützlich für die IE-spezifische Fehler angreifen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top