【问题标题】:How do I keep a <td> element from appearing across multiple pages when printed from IE?从 IE 打印时,如何防止 <td> 元素出现在多个页面中?
【发布时间】:2009-08-03 18:24:10
【问题描述】:

我有一个 HTML 数据表,其中每个单元格可以有多行文本。打印表格时,可能会拆分一行,以便一些数据出现在第一页的底部,而一些数据出现在下一页的顶部。是否有与 Word 的“保持在一起”功能等效的功能来防止在表格行中发生分页符?我认为这将是一个常见问题,但我能找到的唯一“答案”隐藏在某个带连字符的网站上。 :)

更新: 将使用 IE 7 查看数据,它似乎无法正确处理“page-break-inside”属性(如果有的话)。有替代品吗?这是 jQuery 可以提供帮助的吗?

【问题讨论】:

    标签: html printing page-break


    【解决方案1】:

    尝试:

    对 CSS2 友好的方法是
    td { page-break-inside:避免; }

    page-break-inside definition

    来自:http://channel9.msdn.com/forums/TechOff/35322-Keep-with-next-when-printing-HTML-tables/

    【讨论】:

    • 有道理,但应用它似乎对打印结果没有任何影响。它仍然在它想要的地方打破。我什至添加了一些其他内容以确保 CSS 元素被拾取(确实如此),但由于某种原因它不会影响分页符。
    • 经过进一步调查,这似乎不起作用,因为我使用的是 IE。
    【解决方案2】:

    您可以使用 CSS 媒体类型来创建适合打印的页面。下页给出了一个简单的例子。我相信它会帮助你解决问题。 http://martybugs.net/articles/print.cgi

    【讨论】:

    • 我已经在使用 media="print" 样式表来实现其他一些对打印机友好的样式。我正在尝试在这里使用“page-break-inside:避免”,但它似乎没有任何影响。