HomeKontaktImpressum
Sie sind hier: Home

Browserweiche – IE oder nicht?

Will man sicher gehen, dass eine Browserweiche den IE korrekt erkennt, so bieten sich Conditional-Comments förmlich an. Neben einfachen Abfragen, ob es sich beim Client um einen Internet Explorer handelt, können auch Versionsnummern abgefragt werden. Naturgemäß wird aber kein Block für einen Else-Teil geboten. Verzichtet man auf die Standardkonformität der HTML-Datei, so können andere Browseranwendungen ihr spezifisches CSS mit Conditional Comments einbinden, während der IE aussen vor bleibt.

Mittels der in Conditional-Comments interpretierten simplen IF-Anweisungen lassen sich einfache Fallunterscheidungen treffen. Jede derart implementierte Abfrage wird durch die Zeichenkette <!--[if <Bedingung>] eingeleitet und endet mit der Zeichenkette <![endif]-->. Da nun alle zwischen den Zeichenketten <!-- und --> stehenden Zeichen – wie durch HTML vorgegeben – durch alle Browseranwendungen mit Ausnahme des IE als normaler HTML-Kommentar gewertet werden, bleibt der HTML-Code der Homepage Standardkonform. Die einfachste Form eines Conditional Comments besteht dabei in der Unterscheidung der Browseranwendung. Nachfolgend ein Beispiel, welche Style-Anweisungen ausschließlich für den IE definiert.

...
<!-- Browserweiche für IE -->
<!--[if IE]>
<style type="text/css">
  ...
</style>
<![endif]-->
...

In diesem Beispiel interpretieren Browseranwendungen des Typs Internet Explorer die Fallunterscheidung. Mit „if IE” wird eine Fallunterscheidung eingeleitet, dessen Abfrageergebnis als zutreffend bewertet wird. Die Folge ist nun, dass die folgenden Zeilen bis zum den Abfrageblock schließenden „endif” entsprechend beachtet werden. Alle andere Browser kommen gar nicht erst zur Auswertung der Bedingung, da sie den gesamten Block als Kommentar verwerfen. Statt der hier enthaltenen Styles können auch HTML-Elemente oder eine Kombination aus beidem angegeben werden. So ist beispielsweise auch die Angabe eines individuellen Links zu einem CSS-File, welches ausschließlich durch die unterschiedlichen Versionen des IE nachgeladen wird, möglich.

Durch einen Konstrukt der folgenden Art lässt sich ein Stylesheet für alle anderen Browser angeben. Der Unterschied besteht darin, dass die Abfragen nicht durch einen Kommentar umschlossen werden und das funktioniert auch nur, wenn es sich beim enthaltenen Code um ein Stylesheet oder – wie im Beispiel – um ein Link-Element handelt.

<![if !IE]>
  <link href="/style_andere.css" rel="stylesheet" type="text/css" />
<![endif]>

Allerdings geht das zu Lasten der Standardkonformität, da sowohl der Einleitende als auch der Abschließende Konstrukt durch das Weglassen der Kommentareinleitung als HTML-Tags interpretiert werden. Stehen in diesem Block HTML-Elemente, die zur Anzeige von Inhalten dienen – oder allgemeiner: irgend etwas, das durch den Browser dargestellt wird; also auch normaler Plain-Text –, so kommt es wegen der fehlenden Auskommentierung bei allen Browsern mit Ausnahme des IE zur ungewollten Darstellung der enthaltenen Inhalte. Diese passen dort nicht hin und zerstören ggf. sogar das Layout der Homepage.

Conditional Comments können aber nicht nur den Internet Explorer erkennen. Auch die unterschiedlichen Programmversionen können voneinander unterschieden werden. Dabei sind einige Operatoren nutzbar, die für Fallunterscheidungen herangezogen werden können. Hier sind, neben einem Operator, der auf Ungleichheit prüft und anderen etwa zur Prüfung von „Größer” und „Kleiner”, auch logische Operatoren nutzbar. Darüber hinaus ist auch eine Klammerung von Ausdrücken möglich.

Operator Bedeutung
ltless than (kleiner als)
lteless than or equal (kleiner oder gleich)
gtgreater than (größer als)
gtegreater than or equal (größer oder gleich)
!logische Negation
&logische Und
|logische Oder

Seite 2 von 3 | « [1] • [2] • [3] »
  
© 2009-2024 Möglichkeiten zur Steigerung von Geschwindigkeit und Usability Ihrer eigenen Website