使用page-break-after在6 div之后中断页面?

时间:2013-07-17 11:00:20

标签: html css

这是我的打印页面的样子,

enter image description here

这是我的html一瞥,

<style>
    .container{
        float: left; 
        border: 1px solid Black; 
        width: 400px;
        height: 350px;
        margin: 10px;
        padding: 10px;
        page-break-inside: avoid;
    }
    .container img{
        max-width: 200px;
        max-height: 200px;
    }
</style>
<div class="container">
    <b>Name: </b>@Product.Name<br />
    <b>Model: </b>@Product.ModelNumber<br />
    <img src="@Product.ImagePath" /><br />
    <span style="font-size: 20px">DetailedDescriptions</span><br />
    @foreach(var attr in Product.DetailedDescriptions){
        @attr.Header<br />
    }
    <span style="font-size: 20px">KeyAttributes</span><br />
    @foreach(var attr in Product.KeyAttributes){
        @attr.Name<br />
        @attr.Value<br />
    }
</div>

如何使用css

确保每6个div之后的分页符

3 个答案:

答案 0 :(得分:4)

您应该封装 divs ,并在 HTML 中创建更好的此类型结构:

<body>
    <div class="container-holder">
        <div class="container-row">
            <div class="container"></div>
            <div class="container"></div>
        </div>
        <div class="container-row">
            <div class="container"></div>
            <div class="container"></div>
        </div>
        <div class="container-row">
            <div class="container"></div>
            <div class="container"></div>
        </div>
    </div>
    <div class="container-holder">
        <div class="container-row">
            <div class="container"></div>
            <div class="container"></div>
        </div>
        <!-- keep adding more container-rows -->
    </div>
</body>

然后在 CSS 中考虑以下几点:

  1. 正文占用整页
  2. 使用 page-break-inside:avoid;
  3. divs
  4. 为单位给出特定的宽度和高度(以像素为单位)
  5. 容器应该包含 display:inline-block vertical-align:bottom;
  6. 容器持有者应该显示:阻止属性
  7. [奖励]避免内联风格
  8. 这是一个有效的 jsFiddle

    我在jsFiddle之外尝试过,我得到了这个结果:

    print preview

答案 1 :(得分:3)

您可以使用

div:nth-of-type(6n) {
    page-break-after:always;
}

在每个6. div之后插入一个分页符,但我认为这不适用于浮点数。

答案 2 :(得分:2)

你可以这样做:

<强> FIDDLE

.wrapper div:nth-child(6n)
{
    margin-bottom: 300px;
}

这意味着:在每6个容器之后 - 添加x px的底部边距(你需要多少),以便将下一个框推到下一页。