molily: float bug im Opera?

Beitrag lesen

Hallo,

Nehme ich das "float:left;" aus der class ".table .header" sieht es besser aus, aber ich bekomme unten ein scrollbar im Opera, auch nicht toll, außerdem brauche ich das float eigentlich.

Deine abenteuerliche float-Konstruktion löst einen Opera-Bug aus, anders lässt sich das nicht erklären. Nach dem clear bei .header wird nicht die Breite des darüberliegenden divs nicht neu berechnet, sondern es wird die Breite angenommen, die es ohne clear einnehmen würde. Wenn ich das richtig sehe, brauchst du den float bei .header gar nicht bzw. du nutzt float dort nur, um einen Block Formatting Context auszulösen, damit das .header-div, das nur floatende Kindelemente hat, diese einschließt. Das einzige, was du machen könntest, ist auf eine andere Methode auszuweichen, die ebenfalls einen Block Formatting Context auslöst, aber kein float - das wäre etwa overflow:hidden.

Im Allgemeinen kann man echt nur sagen: Bei solchen fragwürdigen Tabellen-Nachbau-Konstruktionen mit mehrfach verschachtelten floats bzw. Block Formatting Contexts ganz ohne regulären Elementfluss sind Browserfehler vorprogrammiert. Dass float-Boxen überhaupt ohne width-Angabe verwendet werden können und sich ihre Breite nach den Inhalten richtet, ist relativ neu, erst CSS 2.1 wird das als fest definierte Regel einführen. Das hat Opera wohl noch nicht mit allen Eventualitäten eingeführt - das scheint mir auch schwierig in einen Algorithmus zu bringen, weil sich alle floats gegenseitig determinieren.

Mathias