Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision |
topics:overflow-formatting-context [2012/05/17 11:20] – [Data entry] fantasai | topics:overflow-formatting-context [2012/07/15 01:39] – aprowse |
---|
Spec_tags : css21, css3-flexbox | Spec_tags : css21, css3-flexbox |
Owner_tags : fantasai, antonp, TabAtkins | Owner_tags : fantasai, antonp, TabAtkins |
Status_tags : Open | Status_tags : Resolved to approve proposal subject to CfC on additional clarifying text. |
Added_dt : 2012-05-15 | Added_dt : 2012-05-15 |
Action : Approve the proposal? | Action : React to CfC - http://lists.w3.org/Archives/Public/www-style/2012Jul/0342.html |
Issue_urls : https://www.w3.org/Bugs/Public/show_bug.cgi?id=15381 | Issue_urls : https://www.w3.org/Bugs/Public/show_bug.cgi?id=15381 |
Proposal_urls : http://lists.w3.org/Archives/Public/www-style/2012May/0494.html | Proposal_urls : http://lists.w3.org/Archives/Public/www-style/2012May/0494.html |
=== Problem Statement === | === Problem Statement === |
| |
The ''overflow'' property says it only applies to block containers, but it should also apply to tables and flex containers | The ''overflow'' property says it only applies to block containers, but it should also apply to tables and flex containers. |
| |
=== Proposal === | === Related Problems === |
| |
In 11.1.1 (Overflow), replace: | For non-root elements whose position is 'relative' or 'static', the containing block is defined to be formed by the content edge of the nearest block container ancestor box [or table box], but it should be formed by other types of layout container for certain elements in other layout schemes (for example by the flexbox for flexbox items). |
| |
# Applies to: block containers | Note that the issue of other layout schemes needing such adjustments to ''overflow'' and the containing block hierarchy already exists within CSS21 itself: |
| * Bug 15381 - Incorrect "Applies To" line for 'overflow' property (Error in resolution for Issue 120) - https://www.w3.org/Bugs/Public/show_bug.cgi?id=15381 |
| * Bug 15686 - Containing block for internal tables elements should be table not table wrapper (Error in resolution for Issue 120) - https://www.w3.org/Bugs/Public/show_bug.cgi?id=15686 |
| Both these issues arose through an oversight when introducing the terms "block container" etc, namely that table boxes were overlooked. This illustrates the special-casing that spec editors must remember to perform in individual layout specs if the problem is not solved more generally. |
| |
with: | === Approach === |
| |
| Applies to: block containers and boxes that establish a formatting context | * Define the concept of a "formatting context". (Alternative possibility: redefine "block formatting context" to not only apply to blocks. See Bug 17121 - Desire to introduce the concept of a "formatting context" for forwards compatibility - https://www.w3.org/Bugs/Public/show_bug.cgi?id=17121 ) |
| * Change the definition of ''overflow'' |
| * Change the containing block hierarchy (optional addition to proposal) |
| |
| === Proposal === |
| |
| == Formatting context == |
| |
In 9.4 (Normal flow), replace: | In 9.4 (Normal flow), replace: |
| table box. These boxes have content and borders, and cells have | | table box. These boxes have content and borders, and cells have |
| padding as well. Internal table elements do not have margins. | | padding as well. Internal table elements do not have margins. |
| |
| == ''overflow'' == |
| |
| In 11.1.1 (Overflow), replace: |
| |
| # Applies to: block containers |
| |
| with: |
| |
| | Applies to: block containers and boxes that establish a formatting context |
| |
| == Containing block hierarchy (optional addition to proposal) == |
| |
| (This has neither been reviewed nor discussed on the public mailing list.) |
| |
| In 10.1 (Definition of "containing block"), replace: |
| |
| # 2. For other elements, if the element's position is 'relative' or |
| # 'static', the containing block is formed by the content edge of |
| # the nearest block container ancestor box. |
| |
| with: |
| |
| | 2. For other elements, if the element's position is 'relative' or |
| | 'static', the containing block is formed by the content edge of |
| | the nearest ancestor box that is a block container or which |
| | establishes a formatting context. |
| |
=== Links to More Info === | === Links to More Info === |
| |
- Thread start: http://lists.w3.org/Archives/Public/www-style/2012May/0438.html | - Thread start: http://lists.w3.org/Archives/Public/www-style/2012May/0438.html |
| - Bug 17122 - "Applies To" line for 'overflow' property hinders forwards-compatibility - https://www.w3.org/Bugs/Public/show_bug.cgi?id=17122 |
| - Resolution: http://lists.w3.org/Archives/Public/www-style/2012Jun/0475.html , http://lists.w3.org/Archives/Public/www-style/2012Jun/0656.html |
| - Call for Censensus on additional clarifying text: http://lists.w3.org/Archives/Public/www-style/2012Jul/0342.html |
| |