带有边距的CSS打印背景

时间:2015-01-08 13:40:47

标签: css printing

我正在尝试制作适合打印的简历。除了有关背景图片的问题外,一切正常。

我不希望打印页面上有任何边距,因为否则背景图像看起来很乱: https://www.dropbox.com/s/h2zttd8u6r6hq0g/Screenshot%202015-01-08%2014.38.14.png?dl=0

但是,如果我不使用任何边距,背景看起来不错,但我无法在第二个(或其他页面)上做任何边距: https://www.dropbox.com/s/16vgu3nahfgeipr/Screenshot%202015-01-08%2014.38.55.png?dl=0

body {
    margin: 30px 0;
}

适用于第一页,但不幸的是,这不适用于任何分页符。有没有办法相对于打印页面的顶部/底部进行填充/边距?

编辑:抱歉这个可怕的例子,但这基本上是代码: http://jsfiddle.net/yugv84qw/

如果按下打印并保存为pdf(至少在Chrome中),您会看到背景填满整个页面。但是,当你包括

@page {
    margin: 1cm 0;
}

你会看到我想要的边距有效,但是后台也会使用该边距。换句话说:我希望背景保持页面填充,而每页上的文本都有一个上下边距。

1 个答案:

答案 0 :(得分:1)

您受到CSS paged media module的供应商实施的限制,表示您可以使用该模块通过使用:first伪造的选择器来定位第一页,例如:

@page:first {
    margin: 0
}

如果支持/缺乏实现证明是一个问题 - 您需要将您的内容添加到与输出页面尺寸匹配的一系列元素中,然后删除第一个上的边距/填充。

可悲的是,即使在这个时代,控制网络打印也不是一个简单的过程。