- From: Andrew Fedoniouk <news@terrainformatica.com>
- Date: Tue, 20 Oct 2009 09:27:33 -0700
- To: Giovanni Campagna <scampa.giovanni@gmail.com>
- CC: "Tab Atkins Jr." <jackalmage@gmail.com>, Www-style <www-style@w3.org>
Giovanni Campagna wrote:
> 2009/10/20 Andrew Fedoniouk <news@terrainformatica.com>:
>> Tab Atkins Jr. wrote:
>>> On Mon, Oct 19, 2009 at 11:43 AM, Andrew Fedoniouk
>>> <news@terrainformatica.com> wrote:
>>>> CSS tables cannot reproduce <table> layout.
>>>> colspan/rowspan and their flex behavior.
>>> There's been talk about adding rowspan/colspan. It's very likely
>>> that'll show up in either Tables level 3 or 4.
>>>
>>> What part of the flex behavior isn't present in the Tables module?
>>>
>>>> width=100% in tables is very far from width:100% in CSS.
>>> Afaik, width=100% on a <table> is just sizing the border-box. In
>>> other words, <table>s just have an automatic box-sizing:border-box
>>> applied by the UA.
>> width="100%" on table is close to the following:
>>
>> table
>> {
>> width:100%;
>> box-sizing: border-box;
>> overflow: none; /* hypothetical "newer overflow" or this: */
>> min-width: min-intrinsic;
>> }
>
> Agreed on the first two, the others are only if "table-layout:auto",
> and therefore it's specified by CSS2 17.5.2.2
>
>> But width/height="XX%" for table cells is completely different thing.
>>
>> Set of cells having width="XX%" in percents in case of
>> sum of percents is equal or greater than 100% is turning into
>> the flex computation.
>
> Same as CSS Automatic Table Layout (introduced by HTML4, included in
> CSS2, replaced by CSS21, made normative by css3-tables-algorithm).
>
>> So this:
>>
>> <TD width="30%">1</TD>
>> <TD width="70%">2</TD>
>> <TD width="50%">3</TD>
>>
>> will be precisely this (using HTML 4.0 relative units [1]):
>>
>> <TD width="3*">1</TD>
>> <TD width="7*">2</TD>
>> <TD width="5*">3</TD>
>>
>> or this if to use flexes:
>>
>> <TD style="width:3*">1</TD>
>> <TD style="width:7*">2</TD>
>> <TD style="width:5*">3</TD>
>>
>
> Not really.
> Tried with
> <!doctype HTML>
> <style>div, table, td { border:1px solid black;
> border-collapse:collapse; }</style>
> <div style="display: table;width:100%">
> <div style="display: table-cell; width: 30%;">1</div>
> <div style="display: table-cell; width: 70%;">2</div>
> <div style="display: table-cell; width: 50%;">3</div>
> </div>
> <table width="100%">
> <tbody><tr><td width="30%">1</td>
> <td width="70%">2</td>
> <td width="50%">3</td>
> </tr></tbody></table>
>
> (style added for clarity)
> in FF3.5, Opera 10, Konqueror 4.3 and Arora 0.10 and:
That is is just an ugly (and buggy) attempt to fix the problem in
mentioned engines.
Take a look here:
<div style="display: block;width:30%; border-color:red"></div>
<div style="display: table;width:100%">
<div style="display: table-cell; min-width: 100px;">0</div>
<div style="display: table-cell; width: 30%;">1</div>
<div style="display: table-cell; width: 70%;">2</div>
<div style="display: table-cell; min-width: 100px;">3</div>
</div>
the first div is a marker that shows how width:30% should look like.
It seems like in mentioned engines table-cell value of display
attribute is changing the meaning of percent length units.
Is such behavior defined somewhere?
So instead of 30% of parent width they use some percents as
sort of flexes.
How then to set width of display:table-cell element to
30% width of its container?
These display:table-*** dances looks like dirty hack here.
--
Andrew Fedoniouk.
http://terrainformatica.com
Received on Tuesday, 20 October 2009 16:27:52 UTC