I have a container div, A, with overflow: hidden, and inside, I have a div, B, with a fixed position. If div B has parts outside of div A, should its contents get clipped? Since in all the browsers I tested successfully clipped position: absolute, I expected the same result with position: fixed, but, alas, I was disapointed as only Opera clipped the contents of div B; Safari, Firefox and IE8 all displayed the overflowed contents. Are the overflowed parts of div B supposed to be clipped, as Opera shows?
The section about the overflow property in the CSS 2.1 specification gives as an example of what constitutes overflow:
A descendent box is positioned absolutely, partly outside the box. Such boxes are not always clipped by the overflow property on their ancestors.
And the definition of absolute positioning says,
References in this specification to an absolutely positioned element (or its box) imply that the element’s ‘position’ property has the value ‘absolute’ or ‘fixed’.
Then the description for overflow
says,
It affects the clipping of all of the element’s content except any descendant elements … whose containing block is the viewport or an ancestor of the element.
So it looks as if Opera is in the wrong for a change!
Well, that’s a surprise—and also a shame, I had a really good idea and was only able to implement it on Opera properly because of this! Looks like I’ll have to come up with an alternate method… thanks for the insight!