- From: Anton Prowse <prowse@moonhenge.net>
- Date: Sat, 24 Jan 2009 10:23:43 +0100
- CC: www-style@w3.org
Tab Atkins Jr. wrote:
> I question, though, how common a bare table block with
> inappropriate children is, though. As noted, the article that the
> author in question took his technique from does it *correctly* with a
> table block having table-cell children.
FWIW I've occasionally used this to achieve a (relatively) neutral
in-flow block formatting context in places where overflow is
inappropriate. (Actually, it's not the table but the implied table-cell
that's the BFC, but a lone display:table-cell has much less
cross-browser consistency in the pre--bleeding-edge versions of the
major browsers.) I give IE<=7 hasLayout instead, which achieves a
rather similar, but not identical, effect.
In the browsers mentioned, this technique seemed to have little or no
side-effects on the descendants of the display:table, whilst actually
specifying display:table-row or display:table-cell on these elements
produced very different renderings. I haven't checked this for a while
though, certainly not in the very latest versions of the browsers.
However, I would never view this "technique" as anything other than
purely experimental. Anyone using the display:table* properties in ways
for which they were clearly not intended cannot then complain if
rendering becomes inconsistent or broken in future browsers.
> I *suspect* that by far the most common 'weird' use of the table-*
> display types will be people placing table-cells in inappropriate
> places, but the current repair rules fix those issues. Does anybody
> know if other weird uses are common, similar to the existing examples
> in the css table spec? (Both of those examples would render
> incorrectly with my algorithm.)
One rather fun effect achieved through the use of display:table-cell is
horizontally-scrollable slideshows:[1]
#container {overflow: auto;}
#container1 > .slide {display: table-cell;}
This effect can also be achieved by setting the slides to
display:inline-block and the container to white-space:nowrap. Both
approaches are rather hacky. Off-topic, but is there a CSS3 approach to
this which is less hacky?
Cheers,
Anton Prowse
http://dev.moonhenge.net
[1]
http://dev.moonhenge.net/css21/test-cases/tables/table-cell-slideshows.html
Received on Saturday, 24 January 2009 09:24:37 UTC