width:100% und margin-right Unterschiede
Neo
- css
Hi,
vor ein paar Tagen hat mir hier schon jemand wunderbar geholfen mit einem Spalten-Layout, bei dem die rechte Spalte durch einen Div-Bereich fester Breite und die linke durch margin-right auf den Rest des Screen ausgedehnt wird.
Aber der Teufel steckt ja bekanntlich im Detail und jetzt gibt es ein kleines (um genauzusein 15 Pixel großes) Problem mit der Gesamtbreite.
Beide "Spalten" befinden sich in einem absolut positionierten Div-Bereich bei 0,0. Damit der Inhalt auch die volle Screen-Breite erhält, ist die Breite mit 100% angegeben. Mit dem IE funktioniert das auch perfekt, aber Mozilla und Opera scheinen 100% als komplette Fensterbreite inklusive vertikale Scrollbar zu verstehen. Ebenso wird ein margin-right scheinbar auf die Fensterbreite inkl. Scrollbar angewendet.
Ist das so die korrekte Darstellung laut W3C?
Wenn ja, gibt es eigentlich eine Möglichkeit, gleich im CSS eine Unterscheidung zwischen IE und Rest der Browserwelt zu machen ohne die Styles (z.B. den margin-right) holprig über Javascript zu ändern?
Vielen Dank an alle :)
Hallo,
Die genaue Angabe der Browser (Versionen!) sowie
die URL der Seite waeren extrem hilfreich bei
der Problemanalyse... ;-)
Und sonst mindestens die ersten paar Zeilen
Deiner HTML-Datei, damit man sieht, in welchen
Render-Modus (Quirks/Standard) Du die Browser
damit versetzt.
http://gutfeldt.ch/matthias/articles/doctypeswitch.html
http://gutfeldt.ch/matthias/articles/doctypeswitch/table.html
Wenn ja, gibt es eigentlich eine Möglichkeit, gleich im CSS eine Unterscheidung zwischen IE und Rest der Browserwelt zu machen ohne die Styles (z.B. den margin-right) holprig über Javascript zu ändern?
Du bist vermutlich ein Opfer des kaputten Box Modells von MS IE
und suchst nach dem "Box Model Hack".
http://www.google.com/search?q=box+model+hack
http://tantek.com/CSS/Examples/boxmodelhack.html
Denk daran, dass auch <html> in gewissen Browsern (Opera?)
noch ein margin oder padding hat. Probier's mal mit:
html, body { margin:0; border:0; padding:0; width:100%; }
(IIRC hat mich kuerzlich jemand darauf hingewiesen, dass
<html> eigentlich keine Box ist oder so. Aber obiges
sollte trotzdem valides CSS sein.)
Gruesse,
Thomas
hallo,
Wenn ja, gibt es eigentlich eine Möglichkeit, gleich im CSS eine Unterscheidung zwischen IE und Rest der Browserwelt zu machen ohne die Styles (z.B. den margin-right) holprig über Javascript zu ändern?
ja, leider kennen nicht alle das ausnahmsweise sinnvolle feuture vom msie - die conditional comments. mehr darüber erfährst du unter http://msdn.microsoft.com/workshop/author/dhtml/overview/ccomment_ovw.asp
mit freundlichen grüßen
dimitri rettig