Axel Richter: Problem mit float

Beitrag lesen

Hallo,

Hallo. Ich habe als Konzept eine einfache Seite mit ein paar <div>'s und einem CSS erstellt, welche unter http://image.lodsoft.de/temp/test.htm temporär verfügbar ist.

(Es folgt Wortgulasch, um die Sache abzukürzen.) Das Problem spielt sich im div#menu ab, welcher ein links gefloatetes img#sitelogo sowie weitere nichtgefloatete <div>'s enthält. Das umschließende div#menu hat eine 1 Pixel breite border-bottom, welche unter allen Kindelementen, insbesondere dem img, stehen sollte. In IE 7 funktioniert das auch tadellos, in den standardkonformen Browsern (hier Op 9 und FF 2) allerdings nicht.

Ich hatte schon versucht, als letztes Kindelement des div#menu ein div#menuend mit { clear:both; } einzufügen.

Das muss aber den gewünschten Effekt haben.

wie ich das Verhalten des IE auch in den standardkonformen Browsern erreiche.

Mit der Wunderwaffe overflow, sprich mit

  
...  
                        div#menu {  
                                border-bottom: 1px solid #AAA;  
                                padding: 0.5em;  
                                background-color: white;  
                                width: 100%;  
                                z-index: 1;  
                                overflow: auto;  
                        }  
...  

Wozu hast Du eigentlich das width:100% hier? Das muss raus! In den standardkonformen Browsern ergibt das (100% + 2 x padding von 0.5em) mehr als die Viewportbreite. Für den IE (siehe [link:http://aktuell.de.selfhtml.org/weblog/css-spaltenlayout#internet-explorer und dort hasLayout) reicht ein zoom: 1; oder ein height: 1px _ohne_ overflow:auto; in einem Conditional Comment.

Ein overflow:hidden würde auch gehen. Das div#menu darf natürlich keine fix vorgegebenen Maße bekommen, damit die entspechenden anderen Konsequenzen von overflow nicht wirksam werden müssen.

viele Grüße

Axel