Workshop Internet-Präsenz
Internet Explorer 5.x: Fehlerhafte Implementation
der Breiten- und Höhenangaben - Cascading Style Sheet
Diese Text enthaltende
Box besitzt weder einen Innenabstand noch einen
äußeren Rand.
Diese Text enthaltende
Box besitzt sowohl einen Innenabstand und einen
äußeren Rand. Das Textfeld sollte dieselbe Breite
besitzen wie die erste Box, die Gesamtbox ist aber
breiter. Im Falle des Internet Explorers (vor Version
IE6/strict) ist das Textfeld kleiner, die
Gesamtbreite identisch zur oberen Box. Beim
Internet-Explorer 5.x werden fälschlicherweise
margin und padding in der Breite
mit berücksichtigt.
Eine Korrektur unter
Nutzung der !important-Regel und eines Fehlers
bei der Behandlung lehrer Kommentarfehler. Dieser
Hack ist normenkonform!
Folgende Fehler im Internet Explorer lassen sich
zur versionsabhängigen Korrektur im Internet Explorer
nutzen:
- Der Internet Explorer (Windows) versteht die
!important-Regel nicht.
- Eine Eigenschaft, die unmittelbar von einem
leeren Kommentar gefolgt wird – z.B. width/**/: –
wird vom vom IE 5.0 (Windows) und IE 5 (Mac) nicht
ausgeführt.
- Eine Eigenschaft, die unmittelbar von einem
leeren Kommentar mit mindestens einem Leerraum gefolgt
wird – z.B. width/* */: – wird vom vom IE 5.0 (Windows)
und IE %5 (Mac) nicht ausgeführt. Zusätzlich wird die
Folgezeile nicht ausgeführt.
- Wenn ein Kommentar unmittelbar vor einem
Eigenschaftswert steht – z.B. /**/10em –, dann wird
diese Zeile vom IE 5.5 (Windows) nicht ausgeführt.
- Wenn eine Eigenschaft vor dem Doppelpunkt von mindestens
einem Leeraum und dann einem Kommentar gefolgt wird, so
wird diese Zeile vom Internet Explorer 6 ignoriert.
Folgendes geschieht mit
width: 16em !important;
width: 20em;
width/**/:/**/16em;
- Die erste Zeile wird von allen Browsern gewählt, die
die !important-Regel beherrschen (nicht vom Internet
Explorer). Alle folgendenden Zeilen werden wegen dieser
Regel ignoriert.
- Die nächste Zeile wird von allen Browsern ausgeführt,
die die !important-Regel nicht kennen (z.B. Internet
Explorer). Die Breitenangabe in dieser Zeile muss die
Werte für padding und margin beider
Seiten enthalten.
- Der erste Kommentar in der letzten Zeile versteckt
diese Eigenschaft vor IE 5.0 (Win) und IE 5 (Mac). Der
zweite Kommentar versteckt sie vor IE 5.5 (Win). Sie
wird aber nicht vor IE 6 versteckt.
Man könnte auch schreiben:
width: 16em !important;
width /**/: 20em;
Siehe auch die Kommentare unter: