Fre*_*y31 5 html css printing firefox page-break
我现在遇到了很多问题.它只是在Firefox(使用FF10测试)中烦恼,这个错误不会发生在Chrome 17或任何IE中.
这就是事情.我的页面架构看起来像这样
<div id="container">
<div id="a">
<img src="foo/bar.png" />
</div>
<div id="b">
<div id="c">
<!--short content-->
</div>
<div id="d">
<!--long content-->
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
编辑:一些人要求提供CSS的一部分.我的代码在这里被简化了很多,这里是匹配的css的简化版本.
#container {
margin: 0 auto;
position: relative;
width: 1000px;
}
#a{
height: 156px;
margin: 0 auto;
position: relative;
text-align: center;
top: 2px;
width: 918px;
}
#b {
background-color: #FFFFFF;
font-size: 12px;
margin: 0 auto;
text-align: left;
width: 958px;
}
#c{
background: url("images/top_content.gif") no-repeat scroll left top #FFFFFF;
height: 50px;
margin: 0 auto;
width: 100%;
}
#d{
padding: 40px 0px;
}
Run Code Online (Sandbox Code Playgroud)
作为奖励,#d div的计算高度为874px(用firebug计算)
应该指出,当内容足够短以适应页面时,内容部分(#d)将不会有分页符并保留在第一页上.

这种情况只发生在例如chrome中,我可以看到#d的内容会在第二页上出血.
所以这是问题所在.如何防止#c和#d div之间的换行?
你的意思是如何在打印时防止分页?
#c{
page-break-after: avoid;
}
#d {
page-break-before: avoid;
}
Run Code Online (Sandbox Code Playgroud)
请注意,执行此操作的"新"方法是使用泛型break-before,break-after如下所示:
#c{
break-after: avoid-page;
}
#d {
break-before: avoid-page;
}
Run Code Online (Sandbox Code Playgroud)
但是在所有浏览器中都不支持此功能.请参阅https://developer.mozilla.org/en-US/docs/Web/CSS/break-before和https://developer.mozilla.org/en-US/docs/Web/CSS/break-after
| 归档时间: |
|
| 查看次数: |
4790 次 |
| 最近记录: |