Zur Navigation

CSS: Verschiedene Browser unterschiedliche Abstände

1 Jörg Kruse

Wenn man die Elemente einer Webseite mit CSS exakt positionieren möchte, wird man beim Test mit verschiedenen Browsern oft mit der Tatsache konfrontiert, dass das Ergebnis im Internet Explorer, in Firefox, Opera oft sehr unterschiedlich ausschaut. Ein Grund hierfür ist, dass unterschiedlich große Abstände zwischen den Elenmenten angezeigt werden. Vom W3C gibt es zwar eine Empfehlung für die Voreinstellungen der Webbrowser, dennoch werden diese von den Browserherstellern unterschiedlich ausgelegt.

Was kann der Webdesigner nun machen? Ganz einfach: er muss die betreffenden Werte überschreiben. Wenn in einer Style Sheet Datei in bezug auf Abstände nichts weiter angegeben ist, werden die Voreinstellungen genommen, die von Browser zu Browser variieren.

Beispiel:

Wenn man möchte, dass der Abstand vom äußeren Layer zum Fensterrand verschwindet, muss man folgendes für body notieren:

<body style="margin:0; padding:0">

bzw. in einer externen CSS Datei:

body {
margin:0;
padding:0;
}

mit margin:0 zwingt man den Internet Explorer und Firefox dazu, den Außenaußenabstand nicht mehr anzuzeigen, mit padding:0 Opera den Innenabstand auf 0 zu setzen - in allen Bowsern schmiegt sich der äußere Layer danach in gleicher Weise lückenlos an den äußeren Rand. Aber auch ander Werte werden gleich angezeigt, wenn diese so definiert werden:
padding:10px; margin:0;
... erzwingt für alle Browser gleichermaßen einen Innen-Abstand von 10px

07.12.2004 19:16 | geändert: 07.12.2004 19:22

2 Zora

Aber auch ander Werte werden gleich angezeigt, wenn diese so definiert werden:

padding:10px; margin:0;

... erzwingt für alle Browser gleichermaßen einen Innen-Abstand von 10px

Das gilt aber nur für moderne Browser. Der IE 5.01 kann das wohl nicht - ich habe das nämlich auf meiner Seite so gemacht, wird aber vom IE 5.01 falsch angezeigt. Siehe Thread Website Kritik im Webmaster-Homepage Forum.

10.12.2004 18:07 | geändert: 10.12.2004 18:14

3 Jörg Kruse

Hallo Zora,

ich hab mir deine Seite grad nochmal genauer angeschaut, der Anzeigefehler im IE 5.01 rührt wohl daher, dass er das padding für den Abstands-Layer #head1 nicht anzeigt, weil dieser inhaltsleer ist; wenn du diesen in zora.css statt mit padding:10px mit height:20px definierst, zeigt der IE 5.01 den betreffenden Layer in gleicher Höhe an wie der IE 6, Firefox und Opera 7.54

#head1{
background-color:#F34443;
height:20px;
margin:0;}

10.12.2004 22:24 | geändert: 10.12.2004 22:26

4 Zora

Hallo Jörg,

herzlichen Dank fürs nochmalige Anschauen meiner Seite und den tollen Tipp. Hab es gleich geändert. :-)

MfG
Zora

10.12.2004 23:16

5 Jörg Kruse

Gerne geschehen :) Sind ja noch einige, die mit der Version unterwegs sind (bei mir 6%), und die sehen die Rätselseite jetzt auch wie vorgesehen :)

11.12.2004 01:25 | geändert: 11.12.2004 01:27

6 chorn

alternativ kann man auch einfach

* {
 margin:0;
 padding:0;
}

angeben, bzw sollte man, damit man in allen browsern auf einen einheitlichen nenner kommt - bedeutet zwar mehr schreibarbeit, ist aber auch deutlich praeziser.

11.01.2005 15:19

7 Jörg Kruse

Die Schreibarbeit hat man am Ende sowieso, aber der Einsatz deiner Variante am Anfang einer Style Sheet Datei eignet sich wohl ganz gut dafür, dass man das Definieren der Abstände für einzelne Elemente nicht so leicht übersieht

11.01.2005 15:34

8 ulli schmid (Gast)

ist es vielleicht möglich für jeden browser eine eigene css datei zu schreiben?

04.05.2005 14:03

9 wrtlprnft

ist es vielleicht möglich für jeden browser eine eigene css datei zu schreiben?
Prinzipiell schon.
Mir ist jetzt kein wirklich brauchbarer Hack bekannt, mit dem man Presto, KHTML und Gecko trennen könnte, aber da sich alle recht gut an die Standards halten dürfte das kein Problem sein.
Man kann dem IE ein eigenes Stylesheet verpassen, indem man es in Conditional Comments packt:
<!--[if IE]><link rel ="stylesheet" type="text/html" href="ie.css"><![endif]-->
Wenn es nur kleine Mengen sind kann man auch einen css-Hack verwenden: Aus
div.classname { ... }
wird
* html div.classname { ... }

04.05.2005 15:03

... 5 Jahre und 8 Monate später ...

10 Ayin (Gast)

Hallo Jörg

also mein problem ist, dass ich nur 1 Styesheet für zwei browser (also IE und Firefox) benutzen darf. ich soll das so machen dass 1 stylesheet bei beiden browsern funktioniert...wie kann ich das machen?

03.02.2011 13:07