Html 打印长列表时如何避免断页

Html 打印长列表时如何避免断页,html,css,printing,Html,Css,Printing,我正在为我客户网站上的可打印小册子做一些样式设计,其中可能包含冗长无序的信息列表 我的问题是,当在Firefox中打印时,整个将进入一个新页面,而不是它的子的拆分,这意味着它不会与页面上的其他内容一起流动 我发现只有Opera和IE8才支持CSS属性内部分页符,有没有人知道这个属性的替代方法,或者我可以使用其他方法来防止整个列表在新页面上分页符 干杯 更新[23.11.2011]: 我能够在我的问题上使用变通方法,因为打印的文档是根据用户的选择生成的,所以这一页只能打印。我(非常不情愿地)将语义

我正在为我客户网站上的可打印小册子做一些样式设计,其中可能包含冗长无序的信息列表

我的问题是,当在Firefox中打印时,整个
将进入一个新页面,而不是它的子
  • 的拆分,这意味着它不会与页面上的其他内容一起流动

    我发现只有Opera和IE8才支持CSS属性
    内部分页符
    ,有没有人知道这个属性的替代方法,或者我可以使用其他方法来防止整个列表在新页面上分页符

    干杯

    更新[23.11.2011]: 我能够在我的问题上使用变通方法,因为打印的文档是根据用户的选择生成的,所以这一页只能打印。我(非常不情愿地)将语义推到一边,删除了UL,并用DIV替换了LI,DIV正确地断开了。然而,对于任何有类似问题但使用相同HTML打印和屏幕的人来说,这个问题仍然存在


    我将重现我遇到的问题,并尽快发布必要的HTML和CSS。

    要获得更好的浏览器支持,您可以使用以下内容:

    ul li {
      page-break-after: avoid;
      }
    ul li:first-child {
      page-break-after: auto;
      }
    

    也应该在IE7中工作。但在Firefox中不起作用。浏览器在打印时很糟糕。

    考虑以编程方式删除打印版本的UL标记。您应该能够通过一些样式使LI元素显示相同的内容

    JavaScript甚至jQuery都可以很容易地处理这个问题,但我打赌您可以处理这个服务器端

    我知道它在技术上不是有效的HTML,但有时当HTML/CSS不能为您提供灵活性时,您不得不改变规则。

    这要归功于


    这是一个痛苦的过程,但是pdf导出…如果你可以发布一个示例html文档,这将有助于测试潜在的答案。FF的确切版本是什么?我使用的是最新版本,它通常会拆分UL。您是否尝试过应用孤儿或寡妇属性?ff3.5+支持它们和分页符是的,我用谷歌找到了这个解决方案——这只是我可以使用的另一种资源。老实说,我不知道谁会在乎我用了什么搜索引擎。我在我安装的每个浏览器(IE8、FF4、FF5、FF6和FF8、Opera 11和Safari 5)中都进行了测试,所有这些浏览器都可以使用。@JoshStodola-正确答案来自何处并不重要,只要来源可靠,并且可以帮助提问者。
    @media screen {
      .page-break  { height:10px; background:url(page-break.gif) 0 center repeat-x; border-top:1px dotted #999; margin-bottom:13px; }
    }
    @media print {
      .page-break { height:0; page-break-before:always; margin:0; border-top:none; }
    }