- From: Alan Gresley <alan@css-class.com>
- Date: Mon, 14 Oct 2013 03:09:31 +1100
- To: "Kang-Hao (Kenny) Lu" <kanghaol@oupeng.com>
- CC: WWW Style <www-style@w3.org>
On 13/10/2013 9:03 PM, Kang-Hao (Kenny) Lu wrote: > There was a question of "why 'overflow: hidden' establishes BFCs"[1] > asked a while ago on this list and it was revealed - because 'overflow: > hidden' has an invisible scrollbar, a fact that I doubt more than 5% of > all Web developers know, and a float should not intrude into a > scrollable element or otherwise the interaction is complicated. That is not what Boris says. He says that the scrolling UI is not provided but content is still scrollable programmatically [2]. > I've since wondered if we can have a 'overflow: hidden' equivalent that > has no layout but painting effect (and that floats can intrude into it). Can you clarify what you mean by no layout. > Perhaps 'clip' was meant to achieve this but that property seems to > already fail largely. Clip only works with absolutely position elements. <!DOCTYPE html> <style type="text/css"> div { position: absolute; border: 10px solid silver; background: red; clip: rect(0px,60px,100px,0px); } </style> <div> <p>A line that is longer than what is clipped.</p> <p>Another line.</p> </div> > Before reading into the draft, I thought this > draft is about this, but the draft doesn't mention BFC... Well I guess it should. I believe it's more to do with css-overflow being so incomplete. > So... can we make 'overflow: clip' not establish a BFC, or is this > already planned? The fact that 'overflow: hidden' affects layout is just > really very confusing to Web developers. This behaivor has been the main > way how Web developers get to known what a BFC is, I believe :) If it doesn't create a BFC, then it's not a 'containing block'. Please read the spec [3] and note the use of the term 'containing block'. | In a block formatting context, boxes are laid out one | after the other, vertically, beginning at the top of | a containing block. | In a block formatting context, each box's left outer | edge touches the left edge of the containing block | (for right-to-left formatting, right edges touch). The thing with overflow (usually a box with a set width or height) is that this 'containing block' (a rectangle) [4] overflows by overlapping other content (visible), overflows inside but can be scrolled (scroll) or is hidden but still scrollable programmatically. > I don't know if spec-wise or implementation-wise not establing BFC > contradicts the requirement to make the element a containling block > root. Are you referring to the initial containing block? > If that's the case, I would like to requst another > overflow-clipping value. > > > [1] http://lists.w3.org/Archives/Public/www-style/2012Apr/thread#msg23 > > Cheers, > Kenny [2] http://lists.w3.org/Archives/Public/www-style/2012Apr/0026.html [3] http://www.w3.org/TR/CSS21/visuren.html#block-formatting [4] http://www.w3.org/TR/CSS21/visuren.html#containing-block Alan -- Alan Gresley http://css-3d.org/ http://css-class.com/
Received on Sunday, 13 October 2013 16:10:02 UTC