DOMPDF表格边框问题

4
我发现DOMPDF(0.6.0 Beta 3)的最新版本出现了一个非常奇怪的问题。我在网站上为客户创建发票时使用它。设计要求表格单元格之间有1像素的边框。如果我使用黑色或#000作为边框颜色,表格就会呈现得很好。然而,当我更改颜色,例如改为#CCC时,边框就变成了2像素。我使用了border-collapse:collapse,并且已经为此耗费了2天时间。我没有改变任何其他内容,除了颜色,但是边框厚度却发生了变化。是否有其他人遇到过这个问题并知道解决方法或有任何建议?为什么黑色可以呈现1像素的边框,而其他颜色则呈现为2像素的边框?救命啊!

编辑:我还有一些填充了 的空单元格,因为我读到这可能会对表格造成影响,但是还是没有起效。


你能发布一个HTML文档的样例吗? - BrianS
这基本上只是我的CSS规则。例如:border:1px solid #000; 会产生一条细黑线,但 border:1px solid #ccc; 则创建了一个2像素的边框。我搞不清楚为什么。 - user2389431
我无法使用类似的样式重现这个问题。所以,看一下你正在使用的代码会有所帮助。另外,你使用的是哪个版本的PHP?你考虑过更新到最新的代码吗?你可以从github或者夜间下载器下载它。 - BrianS
这个问题解决了吗?我正在使用最新版本,当使用除黑色以外的任何颜色时,单元格边框宽度呈现更粗的问题与您的示例中使用的标准CSS相同,如“border-bottom: 1px solid #DEDEDE;”。一旦我将颜色更改为黑色,它们就会呈现为1px(可能是PDF中的1pt)。 - Duffy Dolan
5个回答

8
这可能会有所帮助。我没有尝试重现您的问题,但我知道它可以解决我遇到的一些表格问题。 尝试将以下内容添加到表格的CSS中:
table {
    border-collapse: collapse;
}

很显然,你可以在CSS中使用适当的选择器,而不是定义整个表格类。

4

我遇到了完全相同的问题。这是由于表格有自己的边框和单元格有自己的边框造成的。以下是我解决问题的方法:

table {
    border-left: 0.01em solid #ccc;
    border-right: 0;
    border-top: 0.01em solid #ccc;
    border-bottom: 0;
    border-collapse: collapse;
}
table td,
table th {
    border-left: 0;
    border-right: 0.01em solid #ccc;
    border-top: 0;
    border-bottom: 0.01em solid #ccc;
}

3

如果有人遇到一行中多个表格边框问题

请替换此代码

table{ border:collapse; } 

与之相关
table{ border-spacing: 0; }

参考链接


2

使用 border-spacing: -1px; 而不是 border-collapse: collapse;

这样可以避免在表格的单元格之间出现不必要的间隙。

2

通过将边框厚度设置为0.01em,我看到了一些改进。


我不得不在边框厚度上实际使用0.0001em,因为我得到的边框交叉点有一些小的1像素分支。我的表格角看起来更像是 +-----------+ 的角而不是方形的角。感谢这个提示! - Michael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接