2008-11-08 16 views
7

Nie mogę dla mojego życia znaleźć sposobu, aby to zadziałało.Układ CSS Pytanie

Jeśli mam 3 elementy div (lewy pasek boczny, główne ciało i stopka), w jaki sposób można ustawić pasek boczny i główne ciało obok siebie bez ustawiania ich pozycji jako "absolutnych" lub unoszących je? Wykonanie jednej z tych opcji powoduje, że stopka div nie zostanie przesunięta w dół o jeden lub drugi.

W jaki sposób mogę to osiągnąć bez względu na to, co jest przed tymi elementami (np. Inny nagłówek div lub coś takiego)?

W przypadku pomaga, oto ilustrację dwóch przypadkach próbuję umożliwiają:

alt text http://www.nickawilliams.com/files/layout.jpg

Oto uproszczoną wersję HTML Obecnie mam skonfigurować:

<div id="sidebar"></div> 
<div id="content"></div> 
<div id="footer"></div> 

Odpowiedz

18

musisz określić stopkę, aby wyczyścić pływak:

#footer{ 
clear: both; 
} 

Wymusza to pod wpływem elementów pływających.

Inne opcje usuwania są lewe i prawe.

+0

Dziękujemy! Dokładnie to było potrzebne! Próbowałem używać jasne, ale na floated divs zamiast stopki, teraz działa zgodnie z oczekiwaniami. – Wilco

0

Teraz jesteś całkiem beznadziejny, jeśli nie chcesz niczego unosić, ani używać pozycji: absolutna.

Jedyne alternatywy pozostawione są:

  • użycie display: inline-block na pasku bocznym i zawartości div (nie jest to poparte jeszcze wszystkich przeglądarek)
  • czekać na css advanced layout module lub jakiegoś innego modułu kolumny (zajmie wieki prawdopodobnie)
  • wrócić do używania tabel
1

wykonując jedną z tych opcji skutkuje div stopki nie pchanych przez jednego lub drugiego ?

Wypróbuj this tool