给定以下 HTML 文档,我需要将“表标题”行保留在与<table>
在 IE8 中打印时。
尽管page-break-inside:avoid;
,标题和表格之间仍然有一个分页符。我对此的理解表明应该避免分页并且整个div
推至第 2 页。
文档类型是 XHTML 1.0 Transitional,我有<meta http-equiv="X-UA-Compatible" content="IE=8" />
设置强制 IE8 进入标准模式据说支持这种语法 http://msdn.microsoft.com/en-us/library/cc196971%28v=vs.85%29.aspx,并且我通过检查验证了渲染是在标准模式下完成的document.compatMode == "CSS1Compat"
。 XHTML 有效。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<title>Page title</title>
</head>
<body>
<h1>Page content</h1>
this is some content
<br />which<br />should<br />push<br />the<br />table<br />below<br />on<br />to<br />the<br />next<br />page<br />but<br />the<br />table<br />should<br />be<br />kept<br />together<br />if<br />at<br />all<br />possible<br />please!
<div style="page-break-inside:avoid;">
<p><strong>Table title which needs to be kept with the table</strong></p>
<table>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
</table>
</div>
</body>
</html>
IE8 支持这个功能有问题 http://reference.sitepoint.com/css/page-break-inside.
尽管 Windows 版本 8 的 Internet Explorer 支持值 escape,但它在某些地方存在一些问题。例如,如果应用于 p 元素,浏览器将尝试避免按预期破坏该元素内的页面;但如果应用于 ul 元素,则不会设置整个列表来避免,因为列表可能跨越两个页面。也就是说,单个列表元素将尽力避免内部出现分页符。
从这个例子中,我们可以得出结论,它会尝试不破坏 p 内的页面,也不破坏表内的页面,但它不会将两者结合起来。您可以通过在您的文件中包含很长的文本来测试它<p>
.
解决此问题的一种方法是将您的标题包含在表格中:
<table style="page-break-inside:avoid;" border="1">
<tr><th colspan="3">Table title which needs to be kept with the table</th></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
<tr><td>one</td><td>two</td><td>three</td></tr>
[...]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)