【发布时间】:2022-01-07 09:31:57
【问题描述】:
处理 Mozilla Firefox 中的“可见性:折叠”错误有哪些好的解决方法?
上下文:
我在 cmets 的朋友告诉我有一个旧的 Firefox 错误导致 "visibility: collapse" CSS 属性像 “可见性:隐藏” CSS 属性。这会导致表格完全变大,所有可见列都向左移动,额外的空间向右移动。
对于较大的表,这种不良行为更加严重。
我只是希望能够切换表格列的可见性并让它在 Chrome、Edge 和 Firefox 上看起来相同,这导致了我的问题:处理“可见性:折叠”有哪些好的解决方法" Mozilla Firefox 中的错误?
代码:
这是小提琴:
https://jsfiddle.net/jado66/pgyLm86e/18/
这是小提琴中的代码:
<html lang="en">
<head>
<meta charset="utf-8">
<style>
th{
border-bottom: 1px solid grey;
}
td{
text-align: center;
}
col{
border: 1px solid grey;
width: 55px;
}
</style>
</head>
<body>
<div style="text-align: center;">
<table style="margin: auto; border: 1px solid black; border-spacing: 0; border-collapse: collapse;">
<colgroup>
<col id = "col_1">
<col id = "col_2">
<col id = "col_3">
<col id = "col_4" style="visibility: collapse">
<col id = "col_5" style="visibility: collapse">
<col id = "col_6">
</colgroup>
<tr>
<th>Col 1</th>
<th>Col 2</th>
<th>Col 3</th>
<th>Col 4</th>
<th>Col 5</th>
<th>Col 6</th>
</tr>
<tr>
<td>1.1</td>
<td>1.2</td>
<td>1.3</td>
<td>1.4</td>
<td>1.5</td>
<td>1.6</td>
</tr>
</table>
</div>
</div>
</body>
</html>
【问题讨论】:
-
从技术上讲,
visibility属性正在工作;否则,将显示第 4 列和第 5 列的值。 不工作的是让表格边框缩小以考虑隐藏列。 -
可能与18年前关闭的this ancient bug有关。
-
是的,我在写那个错误@Richard Deeming,显然还在那里,好吧。显然该错误与列有关而不与列组有关,现在它倒置了,与列组有关而不与列有关,所以您必须找到另一种方法,因为我不知道是否有方法保持表格的动态宽度结构如下。
-
找到它:819045 - table element borders draw incorrectly when col has visibility: collapse - 仍然开放,上次更新是 5 年前。
-
表格布局长期以来一直在浏览器制造商中享有盛誉,就像一袋松动的手榴弹。最好单独留下。然而,Chromium 引入了 TablesNG,这是一种新的实现,据说对所有涉及的规则都有更详尽的文档。希望这将反馈到 CSS 表格标准中,并且在适当的时候,我们不仅会修复此类长期存在的错误,还会对 CSS 中非常被忽视的部分进行一些有用的扩展。