I have a simple need to display the cells of a table row vertically. This works just fine in FF, but not in Chrome or Safari on the Ipad.
The example below renders as expected in FF, with each row cell under each other, but in Chrome, it seems to ignore the display:block altogether.
What is the issue - or is there a better way to do this.
(The reason for wanting this is that im using @media in the CSS to render the table differently for a small screen)
for a more visual example:
A normal table might be
DATA1 | DATA2 | DATA3
but with display:block, it should be
DATA1
DATA2
DATA3
Many Thanks
<html>
<head>
<style>
table,
thead,
tr,
td
{
display:block;
}
table,tr
{
border : 1px dotted red;
}
td
{
border:1px dashed blue;
}
thead
{
display:none;
}
</style>
</head>
<body>
<table>
<thead>
<tr>
<td>Heading 1</td>
<td>Heading 2</td>
<td>Heading 3</td>
</tr>
</thead>
<tbody>
<tr>
<td>Data 1</td>
<td>Data 2</td>
<td>Data 3</td>
</tr>
<tr>
<td>Data 1</td>
<td>Data 2</td>
<td>Data 3</td>
</tr>
<tr>
<td>Data 1</td>
<td>Data 2</td>
<td>Data 3</td>
</tr>
</tbody>
</table>
</body>
</html>
EDIT 2:
I think I have worked out your problem. Webkit overrides
display: block;
and computes it to bedisplay: table-cell;
in a td when there is no<!DOCTYPE>
declared for your html.To fix this I recommend you set
<!DOCTYPE html>
before<html>
at the top of your html.The reason the jsfiddle will work is because the site has a
<!DOCTYPE>
already declared.Try this and let me know if it fixes your problem. If not I'll try find another answer.
I've did a trick with using th's instead of td. And a css hack wich only applies on safari (not webkit general).
HTML:
CSS:
Here is my jsfiddle
Many case occurs in tabless.
or