[css3-exclusions] shape-inside and writing-mode: vertical-rl

Hi Everyone,

I've been meaning to send out this question for a while, so here it is. I was wondering about how shape-inside from the exclusions spec interacts with vertical writing modes. I assume that a shape-inside is specified in terms of physical coordinates [1], similar to the clip: rect property [2].

There is an edge case when a shape inside is set on a block with a width (logical height): auto and writing-mode: vertical-rl. Normally, you begin laying out line boxes at the right edge of the shape-inside, which should be located at (element logical height - (shape x + shape width)) (see diagram [3]). However, with width: auto, you don't know what logical height is until you have already laid out all inline content.

In this case, I would propose beginning layout at the right edge, or 0 position, of the element (x' = 0 in the diagram), and continuing layout normally. This would be similar to how we simplify relative heights that cannot be determined to auto [4], or in the case of shape-inside, 0. The main side effect of this is that you cannot set the first line box's start position to anything other than 0 on an element with vertical-rl writing mode, shape inside, and non-fixed physical width / logical height. You can still affect the logical left position using a shape's y coordinate.

Does this sound reasonable?
-Bear

[1] http://dev.w3.org/csswg/css3-writing-modes/#abstract-box
[2] http://dev.w3.org/csswg/css3-writing-modes/#physical-only
[3] https://dl.dropbox.com/u/1558588/www-style/shape-inside-vertical-layout.png
[4] http://www.w3.org/TR/CSS2/visudet.html#the-height-property

Received on Friday, 26 October 2012 21:51:08 UTC