Bug 15686 - Containing block for internal tables elements should be table not table wrapper (Error in resolution for Issue 120)
Summary: Containing block for internal tables elements should be table not table wrapp...
Status: RESOLVED FIXED
Alias: None
Product: CSS
Classification: Unclassified
Component: CSS Level 2 (show other bugs)
Version: unspecified
Hardware: All All
: P2 normal
Target Milestone: ---
Assignee: Bert Bos
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-01-24 08:01 UTC by Anton P
Modified: 2012-09-13 10:12 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anton P 2012-01-24 08:01:50 UTC
Reported by Bert Bos

Nothing in Chapter 17 (Tables) states what the containing block of an internal table element is, so 10.1 is authoratative on this.

10.1 used to say that for non-root relatively- or statically-positioned elements the containing block is formed by the content edge of the nearest block-level, table cell or inline-block ancestor box.  This was changed as part of Issue 120 (quoted below) to say that the containing block is formed by the content edge of the nearest block container ancestor box.[http://www.w3.org/TR/2010/WD-CSS2-20101207/visudet.html#containing-block-details]

Unfortunately, this introduced an undocumented change: the containing block of an internal table element went from being established by the table box to being established by the table wrapper box.

This change should be reversed.

Bug description: http://lists.w3.org/Archives/Public/www-style/2010Oct/0044.html


Issue 120: http://wiki.csswg.org/spec/css2.1?&#issue-120

URL
    http://lists.w3.org/Archives/Public/www-style/2009Mar/0004.html (Issue 8)
Summary
    Spec talks about blocks but leaves out table-caption etc.
Proposal
    Define table-caption etc. to format their contents exactly like blocks, and remove all explicit lists (and just talk about blocks) elsewhere so we don't keep getting out-of-sync. http://lists.w3.org/Archives/Public/www-style/2010Aug/0399.html
Resolution
    Proposal accepted.
Follow-up 1
    There is probably an error [http://lists.w3.org/Archives/Public/www-style/2010Oct/0050.html] in the replacement text for bullet 2 in 10.2. Note that this replacement text anyway needs to change again, because of issue 142.[Bug 15672]
Status
    Closed.
Testcases
    n/a (editorial)
Comment 1 Anton P 2012-05-21 11:42:42 UTC
This issue has parallels with Bug 17122; it would be convenient to be able to say that 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.  This of course assumes that future formatting contexts will always be block-like, and needs checking against multicol, grid, regions etc.
Comment 2 Anton P 2012-07-15 09:24:11 UTC
the WG resolved to accept the following change corresponding to the proposal in Comment 1,[1,2] alongside resolving Bug 17121.

Proposal A:

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.

Accordingly, this bug now has a dependency on Bug 17121, and the agreed change above is sufficient to resolve this bug.

[1] http://lists.w3.org/Archives/Public/www-style/2012Jun/0475.html
[2] http://lists.w3.org/Archives/Public/www-style/2012Jun/0656.html
Comment 3 Anton P 2012-09-13 10:12:57 UTC
The change set described in Comment 2 has been applied to the errata
document:

http://www.w3.org/Style/css2-updates/REC-CSS2-20110607-errata.html#s.10.1