Rayzur asked me to take a look at the Opera issue, and have drawn up the following conclusion.
I concur with this statement. Also, whilst determining whether this was a bug or not, I took into account how the bug is triggered; that is, the negative margin-top of the floated element must be greater than it's computed height - there must be no direct connection between these two property values, that would result in such behavior. Also, the spec definition describing the placement of spacing that's caused by clearance, implies that any margin-top value would be ignored when that element is cleared - "Clearance is introduced as spacing above the margin-top of an element..."
During the deconstruction of the test case, I happened to remove the sibling preceding (.static) the floated element (.float), which revealed a new cross-brower inconsistency; if the floated element (which has a margin-top value greater than it's computed height) is instead the first child, a negative margin-top value of the following cleared element appears to be wrongly applied to the floated element, in Opera 10, Firefox 3, & Safari 4 - in IE8, the negative margin-top value applied to the cleared element is completely ignored. Like with the Opera bug that was initially discovered, the connection described earlier between the negative margin-top value and height of the floated element is a trigger for this issue too. The problem can be fixed by establishing a top border box or top padding box on the parent.
I'm inclined to label this issue a bug because of the nature of the trigger, the nature of the fixes, and also because of the fact that it has the potential to have adverse effects to content preceding the parent element.









Bookmarks