我试图在运行时根据用户选择隐藏/显示表中的列.我定义了两个CSS类:
.hide { visibility: collapse; } .show { visibility: visible; }
我试图在< col>上设置这些样式对应于我要隐藏/显示的列的元素:
<table> <thead> <tr> <th>Column 1</th> <th>Column 2</th> ... </tr> </thead> <colgroup> <col class="hide"> <col> ... </colgroup> <tbody> <tr> <td>Row 1 Column 1</td> <td>Row 1 Column 2</td> </tr> ... </tbody> </table>
但是,它似乎只适用于Firefox,但不适用于Safari或Chrome. Safari和Chrome是否需要特殊处理?我试图避免遍历所有行并修改每个对应的< td>上的CSS类/样式,并且表中的列数很大,所以我想避免每列创建一个CSS类.是否有任何可靠的方法可以通过更改< col>上的CSS类来跨浏览器隐藏/显示列
解决方法
基于Webkit的浏览器似乎还不支持col {visibility:collapse}.
http://www.quirksmode.org/css/columns.html对于检查表列支持非常有用.
我正在玩:
/* Skipping 1st column: labels */ table.hidecol2 th:nth-child(2),table.hidecol2 td:nth-child(2),table.hidecol3 th:nth-child(3),table.hidecol3 td:nth-child(3) { display: none; }
但后来我可以不关心IE.请注意,你必须调整任何colspans和rowpans.使用tr:first-child,tr:not(:first-child)等等根据需要选择/避免.