如何在打印预览中设置边距为0?

29

我错在哪里了?

这是正常的打印预览: 这是第一张图片

但我想看到这张图片(不用拖动边距箭头) alt文本

这是CSS代码和预览:

alt文本


关于 @page 1: http://www.w3.org/TR/CSS2/page.html#x3 2: http://www.belgeler.org/recs/css2/page.html - uzay95
5个回答

38

是的,可以更改页面打印时的页边距。规则应该像这样:

@page {
    margin: 0;
}

目前这种方法在火狐浏览器上无法正常工作。如果您查看他们@page CSS支持的开发者参考文档,您可以了解哪些浏览器支持@page


24

您能做的最好的事情是设置@page边距。 但请记住,如果将边距设置为0,您很可能会被否决。


这是否意味着你只需这样做? @page { margin:1in; } - Matt Huggins
由于设置"margin:0"会被覆盖,因此给出"!important"@page { margin: 0 !important; } - Rohith K P

8

谢谢!在Chrome上运行良好。

@page {
    margin: 0;
}

它也适用于Firefox。 - elsadek

0

我认为这实际上是不可能的,因为你会覆盖用户计算机上的默认设置。据我所知,Web应用程序没有访问权限来更改打印机设置,除非在IE中使用某种ActiveX脚本。

我以前也遇到过类似的问题,最终只能使用TCPDF动态生成PDF文件。最终效果更好,因为你可以更好地控制布局。


0

我的电脑无法升级到更高版本的Windows,所以我只能使用IE8。

我发现在IE8上,页面边距始终至少为左右6.01毫米,上下5毫米。无论我怎么做,即使在@page规则中使用@top-left right和centre规则,它仍然会默认使用上述值。

创建样式表时考虑打印尺寸的限制可能更容易。

在CSS类属性值前加上IE hack \9可能有所帮助,在某些情况下复制属性也可能有所帮助(但不会影响页面边距),例如:

.aDiv {
    margin: 10mm;
    margin: 15mm\9;     //this \9 hack will set that value only on IE8.
}

我知道还有其他类似于\0之类的黑科技,但我承认我并不完全理解它们。在某些情况下,\9对我在IE8中有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接