嵌套HTML表格错误,打印预览IE中分页符附近缺少表格
在我工作的公司,我们以html格式生成报告,我们的客户经常打印这些报告。我们遇到的问题是,有时当客户端打印时,其中一个内部表将在打印视图中的分页符之前开始1或2个像素。这会导致表格消失,但会占用空间嵌套HTML表格错误,打印预览IE中分页符附近缺少表格,html,internet-explorer,printing,html-table,Html,Internet Explorer,Printing,Html Table,在我工作的公司,我们以html格式生成报告,我们的客户经常打印这些报告。我们遇到的问题是,有时当客户端打印时,其中一个内部表将在打印视图中的分页符之前开始1或2个像素。这会导致表格消失,但会占用空间 <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=utf-8"> <META http-equiv="Content-Type" conte
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>test</title>
<style type="text/css">
td { border:1px solid black;}
table {border-collapse:collapse;}
</style>
</HEAD>
<BODY>
<TABLE class="main">
<TR>
<TD>
<TABLE class="second">
<TR>
<TD style="border-top:824px solid-black">1</TD>
</TR>
<TR>
<TD>1_1</TD>
</TR>
<TR>
<TD>1_2</TD>
</TR>
<TR>
<TD>1_3</TD>
</TR>
</TABLE>
</TD>
</TR>
<TR>
<TD>
<TABLE class="second">
<TR>
<TD>2</TD>
</TR>
<TR>
<TD>2_1</TD>
</TR>
<TR>
<TD>2_2</TD>
</TR>
<TR>
<TD>2_3</TD>
</TR>
</TABLE>
</TD>
</TR>
<TR>
<TD>
<TABLE class="second">
<TR>
<TD>3</TD>
</TR>
<TR>
<TD>3_1</TD>
</TR>
<TR>
<TD>3_2</TD>
</TR>
<TR>
<TD>3_3</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
测试
td{边框:1px纯黑色;}
表{边框折叠:折叠;}
1.
1_1
1_2
1_3
2.
2_1
2_2
2_3
3.
3_1
3_2
3_3
上面的代码应该会重现错误,但是您可能必须在边框上添加一些填充,以便在分页符之前将第二个表插入
我们尝试过分页符、填充、边框折叠、无边框折叠。当只有两个表,除了单元格的边框之外没有任何样式时,错误似乎会持续存在。这似乎是一个相当大的缺陷,但我几乎没有运气找到任何关于它的东西
这是IE的问题还是我们可以做些什么来解决这个问题
编辑
我们尝试了尽可能简单的方法(仅限于TD元素的边界),但我们遇到了相同的问题
我们无法解决这个问题,但我们的解决方法是只使用外部表的一个单元格,然后将每个内部表放在其中。这防止了表在分页符附近消失。在使用嵌套表布局的业务应用程序中,我们遇到了与IE7和IE8完全相同的问题。 根据我们对受影响样本的测试证据,Internet Explorer 11不存在此问题 这是IE中的一个缺陷,根据Microsoft技术支持,IE 10之前的版本中就存在这个缺陷,并且也反映在许多PDF打印机使用的打印到PDF功能中,这也是我们第一次发现这个缺陷的原因
不幸的是,我不能提供我所说的任何证据。请检查IE11并确认它是否解决了您的问题。如果您还不愿意切换浏览器,另一种选择是使用基于div的布局进行测试。事实证明,即使没有边框折叠,我们仍然可以复制这个问题:您有什么样的疯狂数据结构来证明嵌套表的合理性?(或者它们是不合理的布局表?)CSS样式,如
在之后分页符,在表中也不能很好地工作。你真的应该尝试找到一个没有大的外部表格的解决方案。从HTML服务器端生成PDF文件比依靠浏览器正确打印要可靠得多。