【问题标题】:Chrome seems to miscalculate css sizes given in mm unit when printing打印时 Chrome 似乎错误地计算了以 mm 为单位的 css 大小
【发布时间】:2014-03-28 06:19:02
【问题描述】:

我想使用 css 打印到 A4。

A4 高 297 毫米 - 上边距 6 毫米 - 下边距 6 毫米 = 应为内容留出 285 毫米。

在 IE 11 中: 我必须将页面边框设置为 6 毫米并禁用页眉/页脚 --> 当我将内容高度设置为 284 毫米(1 毫米差异对我来说足够接近)时,文本会出现在应有的位置

在 Chrome 33 中: 我不必更改任何设置 --> 文本远离它应该在的位置。它仅在我将内容高度设置为 267 毫米时才有效(18 毫米差异在哪里?)

<!DOCTYPE html>
<html>
   <head>
      <style type="text/css">
         @page {
            margin: 6mm;
            size: A4 portrait;
         }
         body {
            margin: 0mm;
         }
         table {
            page-break-after: always;
            border-spacing:0mm;
         }
         tr {
            vertical-align: bottom;
            height:284mm;
         }
      </style>
   </head>
   <body>
      <table>
         <tr>
            <td>Page 1</td>
         </tr>
      </table>
      <table>
         <tr>
            <td>Page 2</td>
         </tr>
     </table>
   </body>
</html>

我的 css 有问题还是 Chrome 不知道 1 毫米的大小?

【问题讨论】:

  • 打印仍然不稳定。我已经提到过类似的麻烦here。它与打印机驱动程序中的边距有关吗? (也就是说,Chrome 在计算页面高度时会考虑这些边距,但 IE 不会,反之亦然。)

标签: html css google-chrome printing


【解决方案1】:

我刚刚想通了。 设置高度是不够的,我还需要设置宽度。 (我仍然需要将高度设置为 284 而不是 285,但这没关系(可能是舍入误差))

tr {
    vertical-align: bottom;
    height:284mm;
    width:198mm;
}

【讨论】:

    猜你喜欢
    • 2018-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 2012-01-04
    相关资源
    最近更新 更多