是否可以将具有绝对绝对位置的元素的HTML页面打印到纸张上?似乎所有浏览器在这里都发生了很大的困惑。通过绝对单位(例如cm)定义主体,并通过position: absolute
将元素放置在内部很容易。但是,每个浏览器似乎都试图使其无法打印此类页面。例如FF会增加打印页边距,即使在页距设置为0的情况下在Linux上以PDF格式打印时也是如此。 Chrome似乎在每种情况下都会缩小页面。
那么如何打印绝对位置的东西,例如。纸质表格字段,标记等?
我忽略了什么吗?
最佳答案
可悲的是,CSS3 Module: Paged Media允许所有这一切发生。这是有关页面太大的规则:
这是打破所有position
ed内容的规则:
请参阅第3.7节的第二段:有关此类元素的确切格式的规范超出了本文档的范围。由于没有其他文档,也没有其他准则,因此遵循本段的一般原则,因此每个浏览器都可以执行所需的任何操作。
这是此CSS3模块中当前存在的缺陷之一。但是,我认为这些缺陷无法通过CSS4或修订的CSS3模块消除,因为可能的样式表和所产生的布局太多,太笼统了。还要注意一点footnote given in CSS Print Profile:
因此,基本上不可能在每个浏览器中都产生相同的效果。就目前而言,获得可移植文档的唯一可能方法是使用第三方应用程序或通过PDF打印机和您最喜欢的浏览器创建PDF。只要W3C的建议不严格,或者浏览器供应商实现他们想要的任何东西,其他所有方法都注定会失败。
也可以看看:
补充说明
如果您有一堆需要打印的
position:absolute
元素,则有时会是一个很好的问题,一个元素是否实际上需要绝对定位,或者是否可以通过稍微不同或更简单的方式实现相同的效果。另请注意,您应该在打印媒体真正不需要的每个元素(例如广告,导航等)上使用display:none
...