CSS to set A4 paper size
我需要在网络中模拟A4纸,并允许打印此页,因为它在浏览器(特别是Chrome)上显示。 我将元素大小设置为21cm x 29.7cm,但是当我发送打印(或打印预览)时,它会裁剪页面。
看到这个现场的例子!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | body { margin: 0; padding: 0; background-color: #FAFAFA; font: 12pt"Tahoma"; } * { box-sizing: border-box; -moz-box-sizing: border-box; } .page { width: 21cm; min-height: 29.7cm; padding: 2cm; margin: 1cm auto; border: 1px #D3D3D3 solid; border-radius: 5px; background: white; box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); } .subpage { padding: 1cm; border: 5px red solid; height: 256mm; outline: 2cm #FFEAEA solid; } @page { size: A4; margin: 0; } @media print { .page { margin: 0; border: initial; border-radius: initial; width: initial; min-height: initial; box-shadow: initial; background: initial; page-break-after: always; } } |
1 2 3 4 | Page 1/2 Page 2/2 |
我想我忘记了什么。 但是会是什么呢?
- Chrome:剪裁页,双页(这正是我需要的功能)
- Firefox:完美运行。
- IE10:信不信由你,这很完美!
- Opera:打印预览中的错误
我对此进行了更多研究,实际的问题似乎是根据
因此,不仅页面的内容现在太长(大约
要解决此问题,您可以简单地在
演示
1 2 3 4 5 6 7 8 9 10 11 | @page { size: A4; margin: 0; } @media print { html, body { width: 210mm; height: 297mm; } /* ... the rest of the rules ... */ } |
这似乎可以将所有其他内容保留在原始CSS中,并解决了Chrome中的问题(已在Windows,OS X和Ubuntu下在不同版本的Chrome中进行了测试)。
的CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | body { background: rgb(204,204,204); } page[size="A4"] { background: white; width: 21cm; height: 29.7cm; display: block; margin: 0 auto; margin-bottom: 0.5cm; box-shadow: 0 0 0.5cm rgba(0,0,0,0.5); } @media print { body, page[size="A4"] { margin: 0; box-shadow: 0; } } |
的HTML
1 2 3 | <page size="A4"></page> <page size="A4"></page> <page size="A4"></page> |
演示
https://github.com/cognitom/paper-css似乎可以解决我的所有需求。
纸CSS印刷快乐
Front-end printing solution - previewable and live-reloadable!