Christian Seiler: Problem mit Positionierung

Beitrag lesen

Hallo Philipp,

<div id="head">
  <p>head</p>
</div>

<div id="main">
  <div id="nav">
    <a href="#">Link1</a>
    <a href="#">Link2</a>
    <a href="#">Link3</a>
  </div>
  <div id="content">
    <p>Text</p>
  </div>
  <div id="side">
    <p>side</p>
  </div>
</div>

<div id="foot">
  <p>foot</p>
</div>

Also: Das <div id="main"> kannst Du weglassen. Desweiteren musst Du - um Dich jetzt nicht endlos zu verkrampfen, die Reihenfolge ändern:

<div id="nav">...</div>
<div id="side">...</div>
<div id="content">...</div>

Dem #nav verpasst Du float:left; und eine Breite. (z.B. 120px oder 10em oder so etwas) Dem #side verpasst Du float:right; und auch eine Breite. Dem #content verpasst Du margin-left:"Breite von #nav + ein bisschen was"; und margin-right:"Breite von #side + ein bisschen was";

Dem #foot verpasst Du noch ein clear:both; und die Sache ist erledigt.

Optimal wärs, wenn die drei divs _immer_ nebeneinander angezeigt werden und wenn die Fensterbreite unter x Pixel ist, man zur seite scrollen muss.

body { min-width: "Minimale Breite der Seite"; }

Allerdings kann das der IE nicht. Dafür nimmt er automatisch die Mindestbreite an; allerdings gibt es da einen unschönen Effekt:

Normal:

verfügbare Anzeigefläche
<-------------------------------------->

+-------+----------------------+-------+
| #nav  | #content             | #side |
|       | inhalt               |       |
|       | inhalt etwas breiter |       |
|       |                      |       |
+-------+                      |       |
        |                      +-------+
        |                      |
        +----------------------+

Zu klein:

verfügbare Anzeigefläche
<--------------------------->

+-------+----------------------+-------+
| #nav  | #content             | #side |
|       | inhalt               |       |
|       |                      |       |
|       |                      |       |
+-------+                      |       |
        |                      +-------+
        | inhalt etwas breiter |
        |                      |
        +----------------------+

Meines Wissens kann man das nicht wirklich umgehen.

Viele Grüße,
Christian