- From: Kang-Hao (Kenny) Lu <kanghaol@oupeng.com>
- Date: Thu, 29 Nov 2012 17:05:48 +0800
- To: WWW Style <www-style@w3.org>
(12/11/29 8:13), John Daggett wrote:
>>> Would the two examples below render with the decimal place at the
>>> same point?
>>>
>>> td { text-align: "." right; }
>>>
>>> <table id="table1">
>>> <col width="40">
>>> <tr><td> $1.30</td></tr>
>>> <tr><td> $85</td></tr>
>>> <tr><td> $.05</td></tr>
>>> <table>
>>>
>>> <table id="table2">
>>> <col width="40">
>>> <tr><td> $85</td></tr>
>>> <tr><td> $1.30</td></tr>
>>> <tr><td> $.05</td></tr>
>>> <table>
>>
>> Yes
>
> Sorry, this doesn't seem clear at all. The "character-aligned
> contents" includes what exactly? All cells that have some form of
> character alignment? All cells that use character alignment and share
> the same "keyword alignment"? Or all cells that have character
> alignment and share the same alignment character and "keyword
> alignment"?
The spec says
# 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 and the rest of the
# text in the column shifted accordingly. (Note that the strings do
# not have to be the same for each cell, although they usually are.)
which is pretty clear to me to mean your first guess. Anyway, I agree
that if there's a person who seriously reads the spec and couldn't
figure out the behaviors in a confident way then that's the problem of a
spec (I had and still have similar experience with css3-values).
Do you want to provide a change to the above paragraph?
My comments as follows:
"... and the rest of the text in the column shifted accordingly" seems
not very accurate but I am not sure what to do. Hacking it, like doing
s/in the column/in the corresponding line box/, would likely make it
unreadable.
s/strings/alignment characters/
Please define "character-aligned contents". I think it's probably
something like "inline-level boxes in line boxes where the alignment
character (could be different for differ cells) appears (for the first
time) or inserted."
> The spec seems to imply the grouping is based on the
> specific alignment character but it *only* specifies that for the case
> where the containing rectangle is smaller than the width of a cell.
Yes, I agree that's a problem.
> And, as you ask, what exactly happens when the contents don't satisfy
> the "insofar as possible without changing the width of the column"
> condition?
Except if the alignment character is in a float of abs-pos, I actually
don't know how that can happen. I need an example here.
> Leave contents out of alignment?
>
> Pathological case:
>
> td#a { text-align: "." center; }
> td#b { text-align: "." right; }
> td#c { text-align: "$" center; }
> td#d { text-align: "$" right; }
>
> <table>
> <col width="40">
> <tr><td id="a"> $85</td></tr>
> <tr><td id="b"> $1.30</td></tr>
> <tr><td id="c"> $.05</td></tr>
> <tr><td id="d"> $34567</td></tr>
> <table>
I don't think this is a good case of the problem you just described and
the result is clear to me (module the fact that "center" has a MAY):
|$85 | (a "." is inserted here at the end)
| $1.30 | ("right" ignored. Not the first char-aligned cell)
| $.05 | ("center" ignored. Not the first char-aligned cell)
| $34567| ("right" ignored. Not the first char-aligned cell)
Having said that, in previous discussions people do say that they want
to align "." and "$" as separate groups[1]. But are examples like those
really useful?
> I still feel like I'm reading tea leaves when I read this section of
> the spec, I can't quite get a handle on the precise behavior that
> needs to be implemented. Part of the problem is that the description
> is worded as an awkward list of "when condition X do Y" statements.
> Given that this is effectively adding steps to the complex algorithm
> for table cell layout I really think this needs to be worded as a
> modification to that algorithm, including how to deal with all cases,
> not just a few select cases.
I share your pain in general. CSS modules are notoriously underspecified
and anti-algorithmic and I never know why. I found it quite funny that
the inline model written by David back in 2000[2] was many times more
underatndable than the current CSS 2.1.
Anyway, too off-topic, if anyone wants to craft some text, David's
message[3] might be a good starting point.
>>> I think the problem is that you're trying to set column-level
>>> attributes from within individual cells which is funky at best.
>>
>> But not all tables have <col>s so I don't see an alternative.
>
> Defining column-level alignment only for tables and at the cell level
> are fundamental design flaws I think. What you really want is a way
> of saying "align this character with that alignment axis", where the
> alignment axis is defined for a parent element. Something along the
> lines of Peter's alternative grid proposal comes to mind.
This reminds me that, as I said, Open Office doesn't have 'text-align:
<string>' in the spreadsheet mode but in the text processing mode. If
anyone knows the use cases there then it would be nice if that's shared.
> All in all, I think the feature as currently spec'ed is of very
> limited use and introduces way too much complexity for the
> functionality that it adds.
I agree. If there's an interest in keeping this feature in Level 3, I
suggest we drop the supplemental <keyword>. That is, it always defaults
to 'right'.
[1] http://lists.w3.org/Archives/Public/www-style/2008Dec/0229 item 4
[2] http://dbaron.org/css/2000/01/dibm
[3] http://lists.w3.org/Archives/Public/www-style/2008Dec/0235 at the bottom
Cheers,
Kenny
--
Web Specialist, Oupeng Browser, Beijing
Try Oupeng: http://www.oupeng.com/
Received on Thursday, 29 November 2012 09:06:16 UTC