- From: Rafał Pietrak <rafal@ztk-rp.eu>
- Date: Sat, 21 Jun 2014 11:20:27 +0200
- To: www-style list <www-style@w3.org>
W dniu 21.06.2014 01:39, Tab Atkins Jr. pisze:
> On Fri, Jun 20, 2014 at 9:00 AM, Rafał Pietrak <rafal@ztk-rp.eu> wrote:
[-----------------]
>> /tbody
>> parts). So "display: [table-tiled | table-rows]" at the "<colgroup>" token,
>> look most apropriate to me. Naturaly, this is only switching the mode of
>> display, not syntax to design a tile - the later is not clear to me, yet.
>>
>> Does it look reasonable?
> You can do this today, by just changing the 'display' value of table
> rows to whatever you need, and committing additional tweaks as
> necessary. Is there anything missing?
>
Hmmm, I asked because I wasn't able to google that.
But as you say its standarised, I've looked at:
http://www.w3.org/TR/CSS21/tables.html .... and regretably found there:
"User agents may ignore these 'display' property values for HTML table
elements". Which does not sound like "I can display row as anything".
And in fact, I haven't found a word on rendering table/row in case when
it's requested to style as "display:block". I've checked the working
draft for CSS3, and styling of TR when it's "display:block" is not
specified there either.
So I gather, the intention here was: "if any table element (like TR) is
styled as 'display:something-else-not-table', then we forget the table
styling for that element at all (e.g. no interaction betweend
display-block/display-table is actually defined in standards)".
Thus, although it looks like I can "display" TR as anythinig, in doing
so I loose all the coordinated display behavior, that TABLE gives me. Do I?
This is not what tiling-a-table needs.
But may be I'm just missreading the specs, so if there are
examples/tutorials of styling TR with display:other-then-table-row, pls
point me there.
In the mean time I've tested what I've found. Yet before I'll say my
"expectations" pls have a look at the following:
---------------example--------------------
<table>
<tr><td>one</td><td>two</td><td>thr</td><td>our</td> </tr>
<tr
style="display:block;width:20ex"><td>sdjkls</td><td>repoijs</td><td>sdjkweoif</td><td>pweojgrrnk</td>
</tr>
<tr><td>one</td><td>two</td><td>thr</td><td>our</td> </tr>
</table>
-----------end-example--------------------
The second row (the one TR style is tested), is rendered (on my
firebird) so, that it "ocupies" the space of first TD of other rows.
This is not what an "author like myself" would have expected even
without tiling. I would expect that every row of a table occupies the
same width, not when "display:block" the same width of other rows
"first-child". So if it's a feature not a bug, it's counterintuitive.
And for tiling the table, I'd actually expect:
1. that "display:tiled" (or: "display:deck") could be applied to any of
table/thead/tfoot/tbody/tr elements. This is sementically different from
"display:block" by the "coordination of positioning" I'm explaining below.
2. to give a good tiling support, it should turn EVERY-TR contained
there, into a respective DIV.
3. it should set the width of all such DIVs to the width of the entire
table, ... and it should "influence back" the width of that element as
in normal table, width of any TR, influences the width of the entire
table. In that sense, sucn DIV should have its with computation follow
exactly that of original TR.
4. it should set every TH/TD element contained in such (turned into DIV)
TR into a SPAN. In consequence, the TH/TD elements in such TR should
behave as if they were SPAN elements in DIV... but with a twist ....
5. .... it should coordinate positioning of every :nth SPAN so, that
those apear at exactly the same positions within every DIV (formerly TR)
of such deck, as the other :nth SPAN.
Here, when I say: "turn TR into DIV" I only mean, that I'd expect all
styling of TR as TABLE-ROW should be dropped; apart from positioning
with respect to other TR and its width; and positioning and "boxing"
behavior od DIV should be assumed instead.
When I say: "turn TD/TH into SPAN", I mean that quite literaly. I mean
that table-cell styling those TD/TH should be entirely replaced by
ordinary SPAN styling, and its positioning within containing DIV.
Yet, I don't mean by the above "turn TR/TH/TD into DIV/SPAN" as
replaceing the names of the elements for the purpose of styling. Authors
should referre to those "turned" elements as before: th:last-child
{float:left}; even though, the ROW is now turned to "display:deck".
In additional to that, it would be desirable for future evolution of
such tiled-style, if new scrolling event was introduced. That event
should be linked to an additional attribute, since such deck-of-tiles
can be displayed in two modes:
1. like in a table: one tile after another. or....
2. ... like in a deck of cards: one tile on top of another.
For the second "styling of tiles", it would be desirable to be able to
"slide them over" by that additional/local scroller. Like on
touchscreen-smallwidth devices like smartphones: when normal page
scrolls vertically, the "other scroll" would engage (and swap next tile
in a deck, or just show "the back of current tile") when scrolled
horizontally. When ordinary pointer is available, that event should
probably be linked to "grab-and slide" mouse event - e.g without
explicitly rendering a scroller widget; or rendering it only as overlay
when hovered.
A small comment regarding p.5 above: The main feature of a table (as
currently specified, compared to an ordinary run of DIV/SPAN elements)
is that, distinct table elements (TD cells) have coordinated dimentions
according to calculations taken on all of them. That same coordinated
calculation I'd expect of TD cells turned into SPAN in consequence of TR
being "display:deck". So if for example, we tile an index card, and one
book title is "DUNE", while the other is "Bang!: The complete history of
the universe", and if the second SPAN takes two lines to display in the
DIV, than the tile containing the first one should also occupy space for
two lines; so that subsequent SPANs start at the very same position on
every tile. (I may cook a live example if that explanation is not
sufficient - just let me know).
But if it's all there in the specs, pls point me to relevant sections.
-R
Received on Saturday, 21 June 2014 09:21:21 UTC