Tobi: Kein Abstand (margin-top) vor Container

Hallo,

ich habe eine Seite erstellt, deren Gerüst aus drei div-Containern besteht, wobei der mittlere zwei weitere Container enthält. Leider wird der mit margin-top angegebene Abstand des unteren Containers vom mittleren Container nicht berücksichtigt.

Ich will erreichen, dass #infokasten einen Abstand von 100px von #seiteninhalt hat. Wie erreiche ich das?

Weiter ist es seltsam, dass der grüne Rahmen von #seiteninhalt nicht #seitentext und #navigation umschließt.

Die vereinfachte Seite kann man im Netz anschauen.

Hier der vereinfachte Quellcode:

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<title>Titel</title>
<style type="text/css">
body {
margin: 0;
padding: 0;
}

#kopfkasten {
margin: auto;
width: 850px;
height: 140px;
}

#seiteninhalt {
clear: both;
width: 850px;
border: 1px dotted green;
}

#seitentext {
float:left;
width: 600px;
padding: 0 0 10px 0;
border: 1px dotted black;
}

#navigation {
float: right;
width: 200px;
height: 240px;
border: 1px dotted blue;
}

#infokasten {
clear: both;
width: 850px;
border: 1px dotted red;
margin-top: 200px;
}
</style>
</head>

<body>
<div id="kopfkasten">
<h1 class="seitenkopf">Text</h1>
</div>

<div id="seiteninhalt">

<div id="seitentext">
<h2>Überschrift</h2>

<div class="tagestext">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh eueet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriureet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriureet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriureet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriureet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriurismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit
</div>

</div>

<div id="navigation">
<ul id="menue">
<li><a href="#">Menü</a></li>
<li><a href="#">Menü</a></li>
<li><a href="#">Menü</a></li>
<li><a href="#">Menü</a></li>
<li><a href="#">Menü</a></li>
<li><a href="#">Menü</a></li>
</ul>
</div>

</div>

<div id="infokasten">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim q
</div>

</body>
</html>

  1. Hallo,

    Ich will erreichen, dass #infokasten einen Abstand von 100px von #seiteninhalt hat. Wie erreiche ich das?

    Entweder
    #Seiteninhalt {overflow:hidden oder auto}

    oder
    #Seiteninhalt {margin-bottom:200px;}

    Beim 2. bin ich mir aber nicht sicher…
    AFAIK klappt das aber alles erst, wenn du das Untenstehende Problem beseitigt hast!

    Weiter ist es seltsam, dass der grüne Rahmen von #seiteninhalt nicht #seitentext und #navigation umschließt.

    Du musst das floating innerhalb von „#seiteninhalt“ irgendwie aufheben. Dafür gibt es mehrere Möglichkeiten:

    1. (Mit zusätzlichem HTML):

    <div id="#seiteninhalt"><div clear="both"></div>  
    </div>
    

    Vorteil: wird von fast allen Browsern unterstützt
    Nachteil: zusätzliches HTML

    2. (Nur CSS):

    #seiteninhalt:after  
     {content:"";display:block;clear:both;}
    

    Vorteil: kein zusätzliches HTML; Block verhält sich normal
    Nachteil: Browser muss :after kennen

    3. (Nur CSS):

    #seitentext,#navigation  
     {overflow:auto oder hidden;}
    

    Vorteil: klappt zumindest in aktuellen IEs
    Nachteil: overflow:auto führt oft zu unnötigen Scrollbalken und hidden macht den Inhalt unerreichbar.

    In deinem Fall würde ich die 2. Methode bevorzugen. Zwar wird sie vom IE nicht unterstützt, dieser errät jedoch das, was du haben möchtest und stellt den Rahmen auch jetzt schon wie gewünscht dar (jedenfalls der 7-er; habe keinen 6-er mehr).

    mfg. Daniel

    1. Hallo Daniel,

      vielen lieben Dank für deine Erklärung. Ich habe Variante 2 gewählt und noch ein paar Anpassungen vorgenommen. Nun klappt alles wie gewünscht.

      Viele Grüße
      Tobi