- From: Brad Kemper <brad.kemper@gmail.com>
- Date: Tue, 12 Nov 2013 16:58:51 -0800
- To: Håkon Wium Lie <howcome@opera.com>
- Cc: Simon Sapin <simon.sapin@exyr.org>, "www-style@w3.org" <www-style@w3.org>
On Nov 12, 2013, at 3:04 PM, Håkon Wium Lie <howcome@opera.com> wrote:
>
> Brad Kemper wrote:
>
>>> In UAs that don't do leaders, the two cells will have the same width
>>> and we will have this kind of rendered output:
>>>
>>> |foo |bar |
>>>
>>> For UAs that support leaders, I think the correct behavior is for the
>>> first cell to grow so that the rendered output is:
>>
>>> |foo.........................................................bar|
>>
>> you mean:
>>
>> |foo.........................................................|bar|
>
> Yes.
>
>>> That'a what I'm trying to say. Do you agree that this is the desired
>>> behavior?
>>
>> Sort of. I think.
>>
>>> If so, could you suggest how to phrase it?
>>
>> How about "Abandon all hope, ye who enter here. This way lies dragons."?
>
> :-)
>
>> Consider this:
>>
>> .with-dotted-leader {
>> width:99%;
>> content:leader("..........................")
>> }
>
> Did you mean to replace the content of these element with a leader? Or did you mean something line::
>
> .with-dotted-leader {
> width:99%;
> }
> .with-dotted-leader::after {
> content:leader("..........................")
> }
Yes, you are right. That's what I meant. I'm getting sloppy.
>> <div class=fixed-width>
>> <table style="width: 100%">
>> <tr><td class=with-dotted-leader>Some already long content in this cell</td> <td class=without-any-leader>Alakazam</td></tr>
>> </table>
>> </div>
>>
>> So, without the leaders, the table might look like this, filling its container:
>>
>> |Some already long content in this cell |Alakazam|
>>
>> But with the minimum leader, it would look like this:
>>
>> |Some already long content in this cell..........................|Alakazam|
>>
>> Thus, overflowing its container. But you'd probably actually want it to look like this at this step:
>>
>> |Some already long content in this cell | |
>> |.......................... |Alakazam|
>
> Yes, after the first step it would look like you have drawn. After the
> second step it would be:
>
> |Some already long content in this cell | |
> |........................................|Alakazam|
Right.
>>> span {
>>> display: inline-block;
>>> content: leader("M M M M M M");
>>> white-space: normal;
>>> width: 1em;
>>> }
>
>>>> Does this cause stacked M's, or does it cause text overflow?
>>>
>>> I don't know. What would be most useful?
>>
>> Maybe just shortening the MLL by enough characters to make it fit. I don't have a strong opinion about this.
>
> The simplest is probably to specify that behaviour is as if "M M M M M
> M" was the content of the element.
OK by me.
>>> This is not what leaders were
>>> desingned for, but it's a corner case that should be resolved. I can go
>>> either way. I'd guess that the simplest for UAs is to format it as if
>>> it was:
>>>
>>> span {
>>> display: inline-block;
>>> content: "M M M M M M";
>>> white-space: normal;
>>> width: 1em;
>>> }
>>
>> So this means you would jettison the "never causes line breaks to
>> change" sentence from the spec? Or just have it there for some
>> things and not others?
>
> I've changed it to:
>
> If there is empty space on the line, the leader is expanded by
> repeating it as many times as possible. The expansion of a leader
> from its minimum length never causes line breaks to change.
That seems fine.
> So, displaying the MLL may cause line breaking, but expanding it will
> not.
>
> This should pretty much solve the matter. One more thing is needed: we
> need to specify that line-breaking charaters inside the leader string
> must be ignored. I've added this to the spec.
>
> http://books.spec.whatwg.org/#leaders
>
>>>> latter, I assume, since the spec only mentions collapsing from the
>>>> white space properties, not wrapping from the white space
>>>> properties. On the other hand, the restriction on line breaking is
>>>> only for "expansion of a leader from its minimum length", not on
>>>> the minimum length itself. So, if you don't want a stack of M's in
>>>> my example above, then the sentence should probably be changed to
>>>> this:
>>>>
>>>> The leader never causes line breaks to change.
>>>
>>> That's not quite true though; the presenece of a MLL may cause a line break to change.
>>
>> Well, that's what we're trying to decide, no?
>
> Yes. And, as per the suggestion above, the answer is that adding the
> MLL may cause line breaks, but the expansion never will. Does this
> make sense?
It does.
>> Maybe it shouldn't, except in the case where it would cause a table to overflow.
>>
>>>> Elements and ::before and ::after pseudo-elements are influenced by
>>>> all properties. This sentence either changes something, or is
>>>> meaningless as normative text. Is it just meant as a note to remind
>>>> people that they have the power to style the content?
>>>
>>> That seems to be the case. I guess there may be easier ways to say so.
>>> And I wonder if some properties, like text-indent, should be excluded.
>>
>> I think it may be problematic to exclude other property values based on the value of the 'content' property.
>>
>>> Perhaps we can just say:
>>>
>>> The appearance of leaders are affected by the same properties that apply to fixed strings.
>>
>> Or "Note: The appearance of leaders are affected by the same
>> properties that apply to any text string, except that the
>> line-breaking restriction, as noted above, will override any line
>> breaking allowances that result from properties such as
>> 'white-space'.
>
> I don't think we need the text following "except" if we change the
> spec, as per what I wrote above.
Agreed.
Received on Wednesday, 13 November 2013 00:59:23 UTC