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
http://lists.w3.org/Archives/Public/www-style/2009Mar/0004.html (Issue 8)
Spec talks about blocks but leaves out table-caption etc.
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
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]
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.
the WG resolved to accept the following change corresponding to the proposal in Comment 1,[1,2] alongside resolving Bug 17121.
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.
| 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.
The change set described in Comment 2 has been applied to the errata