- From: Matthew Brealey <webmaster@richinstyle.com>
- Date: Thu, 16 Mar 2000 15:15:27 -0800
- To: www-style@w3.org
- Message-ID: <38D16B0F.3589@richinstyle.com>
CSS2 states: <q> auto The clipping region has the same size and location as the element's box(es). In CSS2, the only valid <shape> value is: rect (<top>, <right>, <bottom>, <left>) where <top>, <bottom> <right>, and <left> specify offsets from the respective sides of the box. User agents may support rect() with or without commas. </q> But it doesn't say what the element's box is, nor what the offsets are relative to - padding, border or content (this is the correct one) edge! And: <q> When this value is specified and the target medium is 'print' or 'projection', overflowing content should be printed. </q> is wrong on three counts: 1. 'Due to rapidly changing technologies, CSS2 does not specify a definitive list of media types that may be values for @media.' 2. The 'handheld' and 'tv' media can be paged - the correct phrase is 'and the target medium is paged'. 3. It does not specify how or where the content should be printed - preferable is 'this value should be treated as 'visible''. <q cite="http://www.w3.org/TR/REC-CSS2/visufx.html#overflow"> This property specifies whether the content of a block-level element is clipped when it overflows the element's box (which is acting as a containing block for the content). </q> <q> The element's ancestors may also have clipping regions (in case their 'overflow' property is not 'visible'); what is rendered is the intersection of the various clipping regions. </q> This is incorrect. Overflow does not concern itself with ancestors, but with containing blocks. For example, given: <div style="overflow: hidden; clip: rect(150px, 0px, 0px, 0px); height: 400px; width: 400px"> <div style="position: absolute; /* top: auto and left: auto are implied, meaning that the element is withdrawn from normal flow, but is not shifted at all */ overflow: hidden; clip: rect(0px, 0px, 200px, 0px); height: 400px; width: 400px"> </div> </div> the containing block of the inner DIV is the root element (there is a very serious error/problem here, incidentally). It should not be affected by the outer DIV, and it would be as wrong to consider the intersection of the clipping regions as it would in: <div style="overflow: hidden; clip: whatever"> </div> <div style="overflow: hidden; clip: whatever; margin-top: -40px"> </div> There is a more general problem here relating to what overflow actually does. Something to the following effect is required: 'The value of the 'overflow' property for a containing block determines how the content that overflows the content area of that containing block is treated. Some examples should prove illuminating: <DIV style="overflow: hidden"> <DIV style="position: absolute; top: 10px; right: 10px"> </DIV> </DIV> In this example the overflow: hidden on the outer DIV does not affect the absolutely positioned inner DIV, since its containing block is the root element. <DIV style="overflow: hidden"> <DIV style="margin-top: -50px"> Not hidden </DIV> </DIV> In this example the text is not hidden since the margin collapses between the two DIVs, and is therefore 'outside' them both.' ---------------------------------------- Please visit http://www.richinstyle.com Featuring: CSS bug guides (more than 1000 CSS bugs) CSS Masterclass HTML 4 guide CSS 1 guide CSS 2 guide Web-safe colorizer CSS bug table More than 300 CSS test pages
Received on Thursday, 16 March 2000 10:12:23 UTC