Bugzilla – Bug 17122
"Applies To" line for 'overflow' property hinders forwards-compatibility
Last modified: 2012-09-13 11:14:51 UTC
Reported by Morten Stenshorne
The 'overflow' property needs to apply to flexboxes, but it doesn't do so "automatically" due to the "Applies To" line in CSS21 stating that 'overflow' applies to block containers. (See also Bug 15381 which aims to have 'overflow' apply to table boxes in addition.)
It would be nice if the spec could be tweaked so that 'overflow' would "automatically" apply to new types of formatting context, without needing to explicitly spec that in each and every new spec which needs it.
This proposal is precisely the combination of accepting Proposal A for Bug 17121 (found in Comment 2: https://www.w3.org/Bugs/Public/show_bug.cgi?id=17121#c2) together with one further change:
In 11.1.1 (Overflow), replace:
| Applies to: block containers
| Applies to: block containers and boxes that establish a formatting context
Note that this proposal incorporates a fix to Bug 15381.
(Hence the proposal in comment 1 has a dependency on Bug 15381)
This issue has parallels with Bug 15686
Note that in http://lists.w3.org/Archives/Public/www-style/2012May/0438.html Morten points out the following:
BTW: When it comes to "the other non-block container thing", namely
tables, it looks like we have all agreed to honor overflow:hidden, while
overflow:scroll and overflow:auto are treated as overflow:visible...
So we should first decide whether tables are a special case or whether the described behaviour will be typical of formatting contexts.
The WG resolved to accept Proposal A for Bug 17121 (found in Comment number 2 therein) and to accept, in principle and in approach, the proposal for this bug found in Comment 1.[1,2]
The dependency on Bug 15381 remains, however; and so the exact wording of the proposal in Comment 1 is subject to change.
Regarding the proposal for this bug found in Comment 1, Øyvind Stenhaug made the comment that "Applies to" is supposed to list the *elements* to which the property applies, not boxes. (Whether that's actually what we want is an orthogonal question unlikely to be addressed for CSS21.) No-one expressed any objection to hand-waving that issue away by blaming it on the spec-wide element vs box sloppiness. See
In fact, though, this bug has a dependency on
http://lists.w3.org/Archives/Public/www-style/2012Jul/0338.html (not yet
accepted as a Bug) which proposes to define "block container element" in CSS21.
If that happens, the proposal for this bug can be rewritten in terms of
elements not boxes:
| Applies to: block container elements and elements that establish a
| formatting context
Where as proposal in Comment 1 is expressed in terms of boxes and aims to
"capture" table boxes via the second clause, the proposal above captures them
via either clause, since a table element would be both a block container
element (since its principal table wrapper box is a block container) and an
element which establishes (not just one but) two formatting contexts. The
'overflow' property itself has its effect on the table box not the table
wrapper box, as per the property distribution rules in 17.4.
It doesn't seem worth making a change to the second clause without the change
to the first clause though, since that just muddies the waters further by
mixing elements and boxes in the same phrase. Hence the dependency on defining
"block container element".
The proposal in Comment 1 has been added to the errata document: http://www.w3.org/Style/css2-updates/REC-CSS2-20110607-errata.html#s.11.1.1
In response to Comment 5:
The 'overflow' property has its effect on the table box not the table wrapper box of an (inline-)table element. (See Bug 17505 Comment no.9.) The requirements of Bug 15381 are thus clear, and a fix to that bug is incorporated into the proposal for this current bug in Comment 1 above, which has been added to the errata document.
A fix to Bug 15381 will also be incorporated into any competing proposal for this current bug, such as that in Comment 6. Hence Bug 15381 has been marked as resolved.