为什么Firefox在某些HTML表上缺少边框

为什么Firefox在某些HTML表上缺少边框,html,firefox,html-table,border,Html,Firefox,Html Table,Border,我使用的是Firefox 3.5.7,我在多个HTML表格中使用了相同的CSS,但是有一些示例没有显示部分边框 对我来说没有意义的是,对于另一个HTML表,同一页面上的相同CSS可以正常工作。另外,从边框的角度来看,Internet Explorer中的同一页看起来也不错 这是一个带有示例的图像,在本例中,您可以看到第一个表的底部缺少边框 有人知道为什么会发生这种情况吗?也许你放大/缩小了一点。当您按Ctrl+Scrollwheel键时,可能会意外或故意发生这种情况。也许它没有完全重置为零级缩

我使用的是Firefox 3.5.7,我在多个HTML表格中使用了相同的CSS,但是有一些示例没有显示部分边框

对我来说没有意义的是,对于另一个HTML表,同一页面上的相同CSS可以正常工作。另外,从边框的角度来看,Internet Explorer中的同一页看起来也不错

这是一个带有示例的图像,在本例中,您可以看到第一个表的底部缺少边框


有人知道为什么会发生这种情况吗?

也许你放大/缩小了一点。当您按Ctrl+Scrollwheel键时,可能会意外或故意发生这种情况。也许它没有完全重置为零级缩放。这种错误呈现行为在一些网站上是可以识别的,在这里也是如此

要解决此问题,只需按Ctrl+0或执行查看>缩放>重置,即可将缩放级别重置为默认值


这是Firefox/Gecko漏洞。这会影响带有
边框折叠:collapse
的表。这是从2008年开始的,在这方面没有真正的进展,所以你可能需要找到一个解决办法。一种方法是使用
边框折叠:分离
并在每个单元格的基础上修改边框。

这是由于表格(缺少底部边框)位于div中造成的。边框显然没有在表格高度中计算出来,所以边框在那里,但没有显示出来


从1px开始给周围的div留一个底部空白就解决了这个问题。

在我正在开发的应用程序上,当在Firefox中缩小时,我发现了一个类似的问题

主要原因是CSS
border collapse
属性设置为
collapse

将其改为
separate
,解决了该问题。然而,这意味着我必须重新考虑将边框应用于表格各个部分的方式,因为否则您的边框的厚度将增加一倍。最后,我不得不使用jQuery为每个
tr
中的最后一个
td
th
以及表中的最后一个
tr
指定一个特殊的“last”类。我的问题是:

$('table tr > th:last-child, table > tbody > tr > td:last-child, table > tbody > tr:last-child').addClass('last');
我的CSS规则类似于:

table
{
    border-collapse: separate !important;
}

table tr, table th, table td
{
    border-right-width: 0;
    border-bottom-width: 0;
    border-left: 1px solid black;
    border-top: 1px solid black;
}

table td.last, table th.last 
{
    border-right: 1px solid black;
}

table tr.last td
{
    border-bottom: 1px solid black;
}

table
{
    border: 0;
}

我确实使用了浏览器定位,所以我只对Firefox用户应用了这些规则,但它可能适用于所有浏览器,我还没有测试过希望这能解决您的问题。

当浏览器放大时,边框开始丢失。我可以通过以下方法解决它。在Chrome和Firefox中测试

padding: 0.5px !important

我也有同样的问题,缺少表格边框。 我的解决办法是:

table{
  border-collapse: collapse !important;
  border-spacing: 0px;
  border: 1px solid #DDD;
}
表行的边框和边框:

table tr{
  border-bottom: 1px solid #DDD !important;
}
我在我的布局中使用了Bootstrap,这个表也有Bootstrap css类,比如“table striped table bordered”

当我尝试使用此解决方案时,此解决方案对我有效

border-collapse: separate !important;

这对我来说不太合适

基于@GregL的好答案(我似乎无法直接“评论”):
我没有使用JQuery生成“last”类,而是使用内置的伪元素选择器
:first child
。我建立了选择
tr:first child
td:first child
的规则,这些规则定义了
边框顶部
边框左侧
(而不是像格雷格尔的回答那样
边框右侧
边框底部
)。通用规则定义了
边框右侧
边框底部
,而不是
边框左侧
边框顶部
<代码>:第一个孩子在Chrome v中。4.0,FirefoxV。3.0,即7.0,Safari v。3.1和Opera v。9.6 (). 在FirefoxV上测试。40.0.3,我从一开始就看到了这个问题。

让我意识到了答案@Donald Payne

*(.表-引导类)


这有点相切,但对于那些在Firefox中搜索缺少边框的人来说

我有一个表格行(
)的边框底部,在特定单元格上设置了背景的位置缺少该边框。原来这是由单元格上的恶意
position:relative
引起的,删除该位置(或将其更改为
position:inherit
)修复了它


Firefox 70.0.1

你说得对。这很有效。但是我还是不明白。为什么缩放会删除一些边框,而不删除其他边框?一个像素厚的线条很难减半。如前所述,这只是一种错误的呈现行为。例如,尝试缩小您现在面对的SO页面。您将看到上面的选项卡
最旧的
最新的
和/或
投票
在某些级别上实际上会失去边框底部。有趣的。我想这是有道理的。但我仍然希望它在相同大小的元素中保持一致。。所以我希望每一张桌子都会不断地失去它的边界不,当然不会。如果你从800px的高度缩小到799px的高度,那么仍然只有1px的线可以被删除。公平地说,这个问题不是由边界崩溃引起的,它是由十年前报告的一个错误引起的(待修复,就像许多旧的firefox错误报告一样)
table.table {
    border-collapse: separate !important;
}

table.table tr,
table.table th,
table.table td {
    border-right-width: 0 !important;
    border-bottom-width: 0 !important;
    border-left: 1px solid #DDD !important;
    border-top: 1px solid #DDD !important;
}

table.table td:last-child,
table.table th:last-child {
    border-right: 1px solid #DDD !important;
}

table.table tr:last-child td {
    border-bottom: 1px solid #DDD !important;
}

table.table {
    border: 0 !important;
}

table.table thead tr:last-child th,
table.table thead tr:last-child td {
  border-bottom: 1px solid #DDD !important;
}

table.table tbody tr:first-child th,
table.table tbody tr:first-child td {
  border-top-width: 0 !important;
}