Liebes Forum,
bei meinen "Grundlagenforschungen" in der CSS2 Spezifikation muss ich jetzt noch einen drauf setzen:
Ich habe nachfolgenden Code aus der Spezifikation kopiert und durch Farben die Border-, Padding- und Margin-Bereiche sichtbar gemacht. Zum nachvollziehen für euch hier der Code:
<!doctype html public "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>Test zur CSS-Spec</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<link rel="stylesheet" type="text/css" href="layout.css">
<style type="text/css">
<!--
body {font-size:50px}
#body {background-color:yellow;padding:0px;border:3px solid black;height:500px;margin:10px}
#div1 {background-color:green;padding:0px;border:5px solid red;margin:0px}
#p1 {background-color:cyan;padding:0px;border:1px solid black;margin:0px}
#p2 {background-color:blue;padding:0px;border:1px solid black;margin:0px}
#strong1 {background-color:violet;padding:0px;border:1px solid black;margin:0px}
#em1 {background-color:magenta;padding:0px;border:1px solid black;margin:0px}
-->
</style>
</head>
<BODY id="body">
<DIV id="div1">
<P id="p1">This is text in the first paragraph...</P>
<P id="p2">This is text
<EM id="em1"> in the
<STRONG id="strong1">second</STRONG>
paragraph.
</EM>
</P>
</DIV>
</BODY>
</html>
Die Grundüberlegung: Der Containing Block für die Box, die vom Body-Element gebildet wird, ist der vom User-Agent bestimmte Initial-Containing-Block (so jedenfalls laut der Beispiel-Tabelle in der CSS-Spec). In diesem Containing-Block sitzt jetzt die komplette Box des Body-Elements, also mit Margin-, Border-, Padding- und Content-Bereich. Die Grund-Hintergrundfarbe der Browser (ich teste mit IE6, Mozilla 1.0, Opera 6, alle auf WIN98) ist weiß.
Wenn ich jetzt dem Body-Element eine Hintergrundfarbe zuweise, so dürften nur Content- und Padding-Bereich eingefärbt werden. Tatsächlich wird aber auch der Margin-Bereich (bei Opera6) und sogar der ganze Containing-Block (bei IE6 und Mozilla 1.0) eingefärbt.
Meine Fragen:
Seht ihr hier auch Unstimmigkeiten in der Spezifikation bzw. bei deren Umsetzung durch die Browser?
Oder gehe ich gedanklich hier in die Irre und wenn ja, könnt ihr mir helfen, die Gedanken richtig zu stellen?
Dem Verhalten von IE6 und Mozilla gemäß müßte das Body-Element selber der Initial-Containing-Block sein. Das aber widerspricht m.E. der CSS2 Spezifikation und auch der Browser-Praxis, denn wozu braucht ein Containing-Block noch einen Margin-Bereich?
Erstmal denjenigen vielen Dank, die dieses lange Posting bis hierher gelesen und versucht zu verstehen haben. Ich würde mich über einen Austausch mit euch sehr freuen.
Viele Grüße
Pidder Lüng