Div Box Ausrichtungsproblem mit CSS

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Div Box Ausrichtungsproblem mit CSS

    Hey,

    mein Problem ist folgendes. Ich habe innerhalb einer Haupt-Div-Box weitere Div Boxen für z.b. Header, Navigation, Menü und Inhalt (Footer auch, ist aber im moment ausgeklammert). Header ist ganz oben, mit Titel links neben dem Logo. Dann darunter eine Hauptnavigation. Darunter sollen dann zwei nebeneinander floatende Div Boxen mit links Menü und rechts Inhalt kommen. Sobald ich aber einer der Div Boxen die Formatierung float:right oder float:left gebe, erscheint sie in FireFox außerhalb der Haupt-Div-Box (im Internet Explorer funktioniert es). Ich habe so etwas ähnliches aber schon häufiger gemacht und da hat es auch immer in Fire Fox funktioniert.

    Ich frage mich jetzt, was mache ich hierbei falsch, was übersehe ich. Wäre schön, wenn ihr mir weiterhelfen könntet.

    Der Link, um den sich das Problem handelt: Layout

    Der Quellcode lautet:

    PHP-Quellcode

    1. <?php
    2. error_reporting(E_ALL);
    3. include "inc/config/config.php";
    4. echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict //EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
    5. echo "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"de\" lang=\"de\">\n";
    6. echo " <head>\n";
    7. echo " <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />\n";
    8. echo " <link rel=\"stylesheet\" type=\"text/css\" href=\"css/clan1.css\">\n";
    9. echo " <title>CS:S Clanpage des -X- Clans</title>\n";
    10. echo " <meta name=\"author-personal\" content=\"Kevin Klein\" />\n";
    11. echo " <meta name=\"author-mail\" content=\"mailto:[email protected]\" />\n";
    12. echo " <meta name=\"description\" content=\"Counter Strike Source Clanpage des -X- Clans\" />\n";
    13. echo " </head>\n";
    14. echo " <body style=\"text-align:center;\">\n";
    15. echo " <div id=\"main\">\n";
    16. echo " <div id=\"header\">\n";
    17. include "inc/main/header.php";
    18. echo " </div>\n";
    19. echo " <div id=\"navi\">\n";
    20. include "inc/main/navi.php";
    21. echo " </div>\n";
    22. echo " <div id=\"menu\">\n";
    23. include "inc/main/menu.php";
    24. echo " </div>\n";
    25. echo " <div id=\"content\">\n";
    26. include "inc/main/content.php";
    27. echo " </div>\n";
    28. echo " </div>\n";
    29. /*echo " <div id=\"footer\">\n";
    30. include "inc/main/footer.php";
    31. echo " </div>\n";*/
    32. echo " </body>\n";
    33. echo "</html>\n";
    34. ?>
    Alles anzeigen


    und die css Formatierung:

    HTML-Quellcode

    1. /* Haupt ID's # */
    2. #main {
    3. text-align: left;
    4. margin: 0px auto;
    5. width: 780px;
    6. border: 1px solid black;
    7. }
    8. #header {
    9. height: 108px;
    10. }
    11. #navi {
    12. border-top: 1px solid black;
    13. /*width: 50%;*/
    14. margin: 0px auto;
    15. padding-top: 5px;
    16. padding-bottom: 5px;
    17. }
    18. #menu {
    19. width: 120px;
    20. border: 1px solid black;
    21. }
    22. #content {
    23. float: right;
    24. width: 610px;
    25. /*padding: 0px 10px;*/
    26. border: 1px solid black;
    27. }
    28. #footer {
    29. text-align: left;
    30. margin: 10px auto;
    31. width: 780px;
    32. border: 1px solid black;
    33. float: left;
    34. }
    35. /* Styles für header */
    36. #title {
    37. height: 24px;
    38. padding-top: 40px;
    39. }
    40. #banner {
    41. float: right;
    42. height: 108px;
    43. width: 320px;
    44. }
    45. /* Styles für Navi */
    46. .navi {
    47. float: left;
    48. width: 24%;
    49. text-align:center;
    50. margin: 0px auto;
    51. }
    52. .link {
    53. }
    Alles anzeigen



    Ich hoffe, dass damit alle Infos gegeben sind. Falls noch Fragen offen stehen, stellt sie bitte.

    Danke im Vorraus.
    MfG
    Kevin



    Edit: Durch Zufallsexperimentieren habe ich herausgefunden, dass am Ende des Quelltextes ein clear: both das Problem löst. Aber leider habe ich keine Ahnung wieso und weshalb, also wenn mir das vielleicht jemand erklären könnte, wäre es wirklich nett!!
  • das clear:both verhindert, dass das folgende element dahinter gezogen wird.

    eigentlich ist es auch unnötig float:left und float:right zu benutzen.

    float left reicht eigentlich, der content div rückt eh nach