Re: [css3-text] character-based alignment ambiguously defined

Triggered by John's message, I had a chance to think deeper about the
current spec and the following are the issues I have. (I have to say I
am not convinced that having these specified at this stage would change
browser vendors' interest in this feature, and some of these probably
don't make much sense without implementation experience):

  # If the alignment character does not appear in a cell at all, the
  # string is aligned as if the alignment character had been inserted
  # at the end of its contents.

wouldn't this create a mysterious gap for a case like

td { text-align: "." }

<td>$20</td>
<td>$400</td>

| $20 |
|$400 |

instead of the expected

| $20|
|$400|

? And shouldn't this instead say

  | If the alignment character does not appear in a cell at all, the
  | string is aligned as if the alignment character had been inserted
  | at the end of its contents, unless none of the character-aligned
  | cells has the alignment character for that cell. In that case, the
  | character-aligned cells are treated as if they have 'text-align:
  | <keyword>'

? Or is the gap acceptable?


  # If the alignment character appears more than once in the text, the
  # first instance is used for alignment.

I think this should be clarified with s/in the text/in the flow/ or
otherwise I can't imagine what would happen if the alignment character
is in a float or abs-pos descendant.


Also,

instead of

  # When multiple cells in a column have an alignment character
  # specified, the alignment character of each such cell in the column
  # is centered along a single column-parallel axis ...

I think the spec meant to say

  | When multiple cells in a column have an alignment character
  | specified, the alignment character of each such cell that
  | establishes an inline formatting context and has at least one line
  | box that's not a zero-height line box in the column is centered
  | along a single column-parallel axis ...

or otherwise adding a new line to

  <td></td>

or

  <td><span></span></td>

or

  <td><div>paragraph</div></td>

when <string>-aligned seems pretty unexpected. Or perhaps the spec
should clarify here that "inserting the alignment character" does not
have a layout effect (that would seem easier because it invalidates the
above question). However, I am still not sure whether the "." in

  <td><div>$12.34</div></td>

should be aligned and if that affects the position of the <div>...


The spec might also want to ignore the alignment character not in the
same inline formatting context, like in a inline atomic, so that "the
first instance" is less ambiguous, after, say, 'order'-ing in an
'inline-flex'.


Again, all these might be too nitty at this point.


Cheers,
Kenny
-- 
Web Specialist, Oupeng Browser, Beijing
Try Oupeng: http://www.oupeng.com/

Received on Thursday, 29 November 2012 07:59:46 UTC