edit: edit made because of comments:
I asked, because I can't find a doc about, where is what display:xxxx;
allowed.
I asked, because I can "feel" that a rendering engine can "understand" what it means to be a rectangle be rendered like a table-cell
not like a block
, even without a table-row
around
but I am not sure ...
I do not ask for workaround like scripting (I do not mind, its just not the question)
original:
I am still confused about some display properties values (ie. the table ones);
I want (need) a table (or table like construct), that allows me to style the "row". The problem is, that the data to display, is in fact calling for a HTML <table>
(means: I have no controll of the text inside the cells, like in an invoice, ist not just formating static data)
I can (could) solve my prob like shown in the code snipped below, if i just replace the table things like that (a short cut, I hope its clear what I mean)
table
tr
td
td
td
tr
td
td
td
with
div
div
div display:table-cell;
div display:table-cell;
div display:table-cell;
div
div display:table-cell;
div display:table-cell;
div display:table-cell;
Just tell the inner DIV
to display as/like table-cell
makes them same hight, and vertical-align
does like cell should, and all is fine
so again the question: But is this allowed, altough it works?
what confuses me is, that if I do what I often read (here) i should make it like that:
div **display:table**
div **display:table-row**
div display:table-cell;
div display:table-cell;
div display:table-cell;
div **display:table-row**
div display:table-cell;
div display:table-cell;
div display:table-cell;
but that is the same like table, tr, td (how I would expect), so why should I use it?
on the other hand (I did not try that so far) what happens to
table
tr **display:inline-block**
td
td
td
tr **display:inline-block**
td
td
td
.no-table {
display:inline-block;
display:inline-table;
border:3px solid brown;
padding:3px;
}
.no-row {
display:block;
/* display:table-row; */
border:3px solid blue;
padding:3px;
margin-bottom:3px;
}
.cell {
display:table-cell;
border:3px solid green;
width:40px;
max-width:40px;
vertical-align: middle;
overflow:hidden;
}
<div class='no-table'>
<div class='no-row'>
<div class='cell'>text</div>
<div class='cell'>texttexttext</div>
<div class='cell'>text</div>
</div>
<div class='no-row'>
<div class='cell'>text</div>
<div class='cell'>text text</div>
<div class='cell'>text</div>
</div>
<div class='no-row'>
<div class='cell'>text text text</div>
<div class='cell'>text</div>
<div class='cell'>text</div>
</div>
</div>
Once again the question(s): is the use of a "stand alone or out of context" display: somthing allowed? And if it behaves like expected, will it work tomorrow, too?