- From: L. David Baron <dbaron@dbaron.org>
- Date: Thu, 2 Apr 2015 16:31:11 -0700
- To: www-style@w3.org
- Message-ID: <20150402233111.GA28612@pescadero.dbaron.org>
http://dev.w3.org/csswg/css-writing-modes/#propdef-writing-mode says: # If a box has a different block flow direction than its # containing block: # * [...] # * If the box is a block container, then it establishes a new # block formatting context. ("block flow direction" is essentially a value of the writing-mode property, so this just means that a new block formatting is established when a block has a different writing-mode from its containing block.) http://dev.w3.org/csswg/css-writing-modes/#line-mappings says: # The line-right and line-left directions are calculated with # respect to the writing mode of the containing block of the box # and used to interpret the left and right values of the following # properties: # # * the float property [CSS21] # * [...] http://dev.w3.org/csswg/css-writing-modes/#logical-to-physical defines the mappings from writing-mode, text-orientation, and direction to line-left and line-right directions. Note that this introduces (thanks to 'text-orientation: sideways-left' differing from other values of 'text-orientation') the concept of a block formatting context in which line-left and line-right vary within the block formatting context. This, in turn, means that css-writing-modes needs to rewrite the rules for float placement to account for this. I presume that when the float placement rules in http://dev.w3.org/csswg/css2/visuren.html#float-position refer to other left-floating or right-floating boxes (as in rules 2, 3, 7, and 9), these sides are intended to refer to a consistent side across the entire block formatting context. For example, when interpreting rule (2), a left-floating box whose containing block is a vertical-rl/sideways-left block should be positioned relative to right-floating boxes whose containing block is one of its vertical-rl/mixed ancestors within the same block formatting context. This is in addition, of course, to rewriting the float placement rules in terms of logical directions. It might be clearest to define a term that says whether a box is left-floating or right-floating relative to its block formatting context, which would be different from whether the box is left-floating or right-floating exactly when the float's containing block and the element that establishes its block-formatting context both have writing-mode:vertical-*, and one of them has text-orientation:sideways-left and the other does not. In the absence of a formal definition, it would be useful for the specification to at least point out that this issue is more complex than it first appears because text-orientation: sideways-left allows line-left and line-right to switch sides within a single block formatting context. (Thankfully, Gecko is not currently implementing sideways-left, so we don't need to deal with this right now.) -David -- 𝄞 L. David Baron http://dbaron.org/ 𝄂 𝄢 Mozilla https://www.mozilla.org/ 𝄂 Before I built a wall I'd ask to know What I was walling in or walling out, And to whom I was like to give offense. - Robert Frost, Mending Wall (1914)
Received on Thursday, 2 April 2015 23:31:36 UTC