wahsaga: Erklärung: CSS-Hacks und Conditional Comments

Beitrag lesen

hi,

<!--[if IE]>...<![endif]-->

Gehört das zu der Familie der Hacks über die ich hier oft lese??

Nein, eigentlich nicht.

Als "CSS-Hacks" bezeichnet man idR. bewusste Abweichungen von der korrekten Syntax, die standardkonforme Browser ignorieren - bestimmte Browser aber nicht, d.h. sie interpretieren gewisse fehlerhafte Notationen, und man kann ihnen so ein von der "normalen", für alle (übrigen) Browser gedachten, abweichende Formatierung für bestimmte Elemente andrehen.

Dann gibt es noch die Möglichkeit, Selektoren zu nutzen, die bestimmte Browser(-versionen) (noch) nicht verstehen - z.B. den Attributselektor. Dann formatiert man ein Element einmal über einen "schwächeren" Selektor für ältere Browser gesondert - und für neuere, die diesen "spezielleren" Selektor verstehen, wiederum anders.

In manchen Fällen nutzt man auch Selektoren, die zwar syntaktisch nicht fehlerhaft sind - aber eigentlich unsinnig, sie können gar nichts selektieren. Der Star-HTML-Hack dürfte das berühmteste Beispiel sein -
* html div { ... }

  • dürfte eigentlich gar nichts selektieren, weil html kein Vorfahrenelement hat. Hindert IE-Versionen <= 6 aber nicht daran, ihn trotzdem auf (in diesem Falle) Div-Elemente innerhalb des HTML-Dokumentes anzuwenden - also hat man damit eine weitere Möglichkeit, gesondert von anderen Browsern zu formatieren.

Was du oben hast sind wie gesagt aber keine CSS-Hacks, sondern die sog. Conditional Comments - eine Erfindung von Microsoft, die nur der IE interpretiert. Damit kann man in dem wiederum eigene <style>-Bereiche oder externe Stylesheets per <link> einbinden, die andere Browser nicht "sehen" - schliesslich ist es eigentlich ein Kommentar, der gar nicht interpretiert werden dürfte. Der IE tut dann aber so, als wäre kein Kommentar drumherum, und als würde das Element ganz normal im Dokument stehen.
Auch eine Art "Abfrage" auf verschiedene IE-Versionsnummern ist damit möglich.

CSS-Hacks haben den Nachteil, dass sie wenig verlässlich sind, insb. im Hinblick auf die Zukunft - die Fehlinterpretation einer Selektor- oder Eigenschaften-Notation könnte in zukünftigen Versionen eines Browsers entfallen, dass Darstellungsproblem, welches man damit über eine gesonderte Formatierung beheben wollte, aber nach wie vor existent sein - bzw. genauso andersherum: Darstellungsproblem eigentlich weg, Hack wird aber noch interpretiert - Browser bekommt spezielles CSS, was jetzt eigentlich unnötig, ggf. sogar "falsch" ist.
Allerdings haben Hacks den kleinen Vorteil, dass es auch welche für andere Browser als den IE gibt - falls man mal in einem der anderen Browser etwas korrigieren muss.
Wenn es um reine IE-Probleme geht, wird aber im allgemeinen den Conditional Comments der Vorzug gegeben.

Weitere Informationen zu den Stichworten CSS-Hacks sowie Conditional Comments finden sich zahlreich im Archiv und im WWW.

gruß,
wahsaga

--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }