W3C home > Mailing lists > Public > www-style@w3.org > March 2000

Visual effects errata

From: Matthew Brealey <webmaster@richinstyle.com>
Date: Thu, 16 Mar 2000 15:15:27 -0800
Message-ID: <38D16B0F.3589@richinstyle.com>
To: www-style@w3.org
CSS2 states:

The clipping region has the same size and location as the element's

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.

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!


When this value is specified and the target medium is 'print' or
'projection', overflowing content should be printed.

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).

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.

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">

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 style="overflow: hidden; clip: whatever; margin-top: -40px">

There is a more general problem here relating to what overflow actually

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">
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
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

This archive was generated by hypermail 2.3.1 : Monday, 2 May 2016 14:26:53 UTC