首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >分页-内部:避免与Firefox和/或IE等效

分页-内部:避免与Firefox和/或IE等效
EN

Stack Overflow用户
提问于 2010-08-04 06:24:26
回答 4查看 8.3K关注 0票数 19

我知道在打印page-break-inside:avoid文档时,CSS div指令是为了防止div中的分页符。通过上网搜索,我发现只有Opera和IE8支持。在Firefox (3.6)或低于8的IE版本中,有没有办法防止分页?

EN

回答 4

Stack Overflow用户

发布于 2012-03-28 02:58:52

对不起,我的答案是“不可能”,尽管如果有人能证明我是错的,我会很高兴。

我最近遇到了同样的问题,在做了一些研究之后,我决定继续

代码语言:javascript
复制
page-break-after: always;

在每隔几个元素之后。

http://reference.sitepoint.com/css/page-break-inside

http://reference.sitepoint.com/css/page-break-after

票数 3
EN

Stack Overflow用户

发布于 2012-04-07 06:06:08

请尝试使用white-space:nowrap。这应该会阻止文本在元素内部中断,至少在屏幕上是这样。我不确定它如何转化为印刷媒体,但它值得一试。

更多信息:http://www.blooberry.com/indexdot/css/properties/text/whitespace.htm

票数 2
EN

Stack Overflow用户

发布于 2013-01-16 07:40:23

对于任何不是firefox的东西,

代码语言:javascript
复制
.dontsplit { border: 2px solid black; page-break-inside: avoid; }

都会起作用的。但不适用于firefox。在火狐中,你要做的就是检查高度,然后在相关的时候添加page-break-after: always;

平均而言,顶部和底部的边距将为1英寸。因此,为了测量一个10英寸页面将消耗多少像素,我使用了以下内容:

代码语言:javascript
复制
var pageOfPixels;
(function(){
    var d = document.createElement("div");
    d.setAttribute("style", "height:9in;position:absolute;left:0px;top:0px;z-index:-5;");
    document.body.appendChild(d);
    pageOfPixels = $(d).height();
    d.parentNode.removeChild(d);
})();

我有很多div,每个div都有很多段落。所以我所做的就是迭代它们,然后将它们在当前页面上的当前高度与pageOfPixels值进行比较。

代码语言:javascript
复制
var currentPosition = 0;
$('.printDiv').each(function (index, element) {
    var h = $(this).height();
    if (currentPosition + h > pageOfPixels) {
        //add page break
        $('.printDiv').eq(index - 1).css("page-break-after", "always");
        currentPosition = h;
    } else {
        currentPosition += h;
    }
});

在firefox中,这对我来说很有效。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3401229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档