CSS表从左到右阅读

时间:2013-11-22 11:31:03

标签: css

我无法控制此表上的标记,只能控制CSS。

我希望让桌子从左到右而不是从垂直方向读取。

http://jsbin.com/oXOYayA/1/edit

任何想法都将不胜感激。感谢。

4 个答案:

答案 0 :(得分:1)

This有效。

FIDDLE

body {
-webkit-transform: rotate(90deg);
}
table {
width: 100%;
border: none;
padding: 0;
margin-top: 100px;
-webkit-transform: scaleY(-1);
}

tr {
display: table-row;
vertical-align: inherit;
border-color: inherit;
-webkit-transform: scaleY(-1);
}

table tr:first-child td {
background: #e9e9e9;
}
table tr td {
padding: 10px 5px 10px 5px;
text-align: center;
border: 1px solid #43447b;
-webkit-transform: rotate(-90deg);
height:60px;
}

请确保将 body 替换为容纳要翻转的表的任何容器。

答案 1 :(得分:0)

是否必须在旧版浏览器中使用?对于较新的浏览器,我建议使用CSS3变换逆时针旋转表格90deg,然后以另一种方式旋转单元格。

http://jsbin.com/oXOYayA/5/edit

如果所有单元格都是正方形,那么效果最好(这就是为什么我在TD上设置明确的宽度/高度

编辑:实际上,如果你将我的答案与nkmols结合起来可以做到:http://jsbin.com/oXOYayA/7/edit

诀窍是组合变换

transform: rotate(-90deg) scaleX(-1);

它将表格的一部分旋转出视图,但您可以通过设置变换的轴心点来轻松地修复它。

答案 2 :(得分:0)

我不确定你在问什么。但是你希望底部的<th>和顶部的<td>

您可以在Y轴上镜像表格并在td上重置镜像,这样文本就不会被镜像:

table {
width: 100%;
border: none;
padding: 0;
margin-top: 28px;
-moz-transform: scaleY(-1); /* Gecko */
-o-transform: scaleY(-1); /* Operah */
-webkit-transform: scaleY(-1); /* webkit */
transform: scaleY(-1); /* standard */
}

table tr td {
padding: 10px 5px 10px 5px;
text-align: center;
border: 1px solid #43447b;

-moz-transform: scaleY(-1); /* Gecko */
-o-transform: scaleY(-1); /* Operah */
-webkit-transform: scaleY(-1); /* webkit */
transform: scaleY(-1); /* standard */
}

jsBin

答案 3 :(得分:0)

我知道你说你不能改变标记,但我使用了&lt; thead&gt; &LT; tbody&gt;标签。在您的情况下,只需使用类名来替换thead和tbody标签。

小提琴:http://jsfiddle.net/jennift/aCs7c/

表格:

<table border="0">
    <thead>
        <tr>
            <th>Head 1</th>
            <th>Head 2</th>
            <th>Head 3</th>
            <th>Head 4</th>
            <th>Head 5</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>188</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>211</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
        </tr>
    </tbody>
</table>

和css:

table {
    border-collapse: collapse;
    border-spacing: 0;
    position: relative;
  }
thead { 
    display: block; 
    float: left;
}
tbody {
    display: block;
    position: relative;
    overflow-x: auto;
    white-space: nowrap;
}
thead tr {
    display: block;
}
th {
    display: block;
    text-align: right;
    border:1px solid #000;
}
tbody tr {
    display:inline-block;
    vertical-align: top;
    float:left;
}
td {
    display: block;
    text-align: left;
    border:1px solid #000;
}
/*fix your borders*/

您也可以参考http://elvery.net/demo/responsive-tables/