是否可以通过仅更改col元素上的CSS类来隐藏/显示表列?

前端之家收集整理的这篇文章主要介绍了是否可以通过仅更改col元素上的CSS类来隐藏/显示表列?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在运行时根据用户选择隐藏/显示表中的列.我定义了两个CSS类:
  1. .hide { visibility: collapse; }
  2.  
  3. .show { visibility: visible; }

我试图在< col>上设置这些样式对应于我要隐藏/显示的列的元素:

  1. <table>
  2. <thead>
  3. <tr>
  4. <th>Column 1</th>
  5. <th>Column 2</th>
  6. ...
  7. </tr>
  8. </thead>
  9. <colgroup>
  10. <col class="hide">
  11. <col>
  12. ...
  13. </colgroup>
  14. <tbody>
  15. <tr>
  16. <td>Row 1 Column 1</td>
  17. <td>Row 1 Column 2</td>
  18. </tr>
  19. ...
  20. </tbody>
  21. </table>

但是,它似乎只适用于Firefox,但不适用于Safari或Chrome. Safari和Chrome是否需要特殊处理?我试图避免遍历所有行并修改每个对应的< td>上的CSS类/样式,并且表中的列数很大,所以我想避免每列创建一个CSS类.是否有任何可靠的方法可以通过更改< col>上的CSS类来跨浏览器隐藏/显示

解决方法

基于Webkit的浏览器似乎还不支持col {visibility:collapse}. http://www.quirksmode.org/css/columns.html对于检查表列支持非常有用.

我正在玩:

  1. /* Skipping 1st column: labels */
  2. table.hidecol2 th:nth-child(2),table.hidecol2 td:nth-child(2),table.hidecol3 th:nth-child(3),table.hidecol3 td:nth-child(3) {
  3. display: none;
  4. }

但后来我可以不关心IE.请注意,你必须调整任何colspans和rowpans.使用tr:first-child,tr:not(:first-child)等等根据需要选择/避免.

猜你在找的CSS相关文章