Axel Richter: verschachtelte divs...

Beitrag lesen

Hallo,

nun denn, ich habe ein div, welches #frame heißt, dann eines das heißt #picture und dann noch eines, das heißt #right. die verschachtelung sieht nun folgendermaßen aus:
ansich glaub ich, ist da noch nichts falsch. nun das eigentliche problem:

die einzelnen css- angaben dazu sehen so aus:

#frame {
margin-left:auto;
margin-right:auto;
margin-top:2em;
width:46em;
z-index:1;
border-style:solid;
border-width:1px;
border-color:#000000;
}
#right {
margin-top:3em;
margin-left:1em;
margin-left:1em;
padding-left:0.5em;
padding-right:0.5em;
height:10em;
z-index:1;
float:left;
width:8em;
border-style:solid;
border-width:1px;
border-color:E4E4E4;
}
#picture {
margin-top:1em;
margin-bottom:1em;
margin-left:1em;
width:33em;
left:1em;

^wozu?

height:7em;
z-index:1;
float:left;
border-style:solid;
border-width:1px;
border-color:#E4E4E4;
}
komischerweise macht mozilla dann kein frame mehr. soll heißen, der container #frame ist dann nur mehr ca. 1px hoch. was kann ich machen, dass nun der rahmen von #frame erhalten bleibt?

Das DIV-Element mit der ID frame hat keinen Inhalt mehr, weil die anderen DIV-Elemente mit float aus dem normalen Dokumentfluss genommen sind.

Du musst ihm wieder Inhalt geben. Beispielsweise, indem Du folgendes ergänzt:

<div id="frame">
 <div id="picture">
  <!-- bild -->
 </div>
 <div id="right">
  <!-- sub navi -->
 </div>
 <br style="clear:left;">
</div>

Erklärung:
Die Einstellung clear:left; sorgt dafür, dass sich der Zeilenumbruch nicht an den Floatings der DIV-Elemente orientiert, zwingt ihn also _unter die DIV-Elemente. Da der Zeilenumbruch gleichzeitig aber Elementinhalt des DIVs mit der ID frame ist, muss dieses DIV entsprechend gross werden.

Meinung:
Solche Konstruktionen zeugen von einer falschen Herangehensweise an die Formatierung von Hyper_Text_Dokumenten. Löse Dich von der Aufteilung des Bildschirms in Fenster. Layoute das Dokument nach seinem Inhaltsfluss.

viele Grüße

Axel