A4 尺寸的 HTML div 大于 A4

标签 html css

我将父 div 的大小设置为 A4 (size="21cm 29.7cm")。但是,在 Chrome 打印预览中,如果使用 A4 且没有边距,则 HTML 页面将不适合 A4。我必须将其缩放到 80%。

我的 HTML 中是否存在某些内容导致此问题?我希望 size="21cm 29.7cm" 强制页面为 A4。

更新我发现了这个:

CSS to set A4 paper size

并尝试了以下 CSS,但不起作用:

@page {
  size: A4;
  margin: 0;
}
@media print {
  html, body {
    width: 210mm;
    height: 297mm;
  }
}

HTML:

<!Doctype>
<html>
<head>
  <style>
    .background
    {
      position: relative;
      top: 0;
      left: 0;
    }
    .text
    {
      position: absolute;
      top: 0px;
      left: 0px;
      width: 1449px;
      height: 2050px;
    }
  </style>
</head>
<body>
  <div style="position: relative; left: 0; top: 0;" size="21cm 29.7cm">
    <img src='page0022.jpg' class="background"/>
    <img src='0022.svg' class="text"/>
  </div>
</body>
</html>

最佳答案

了解尺寸: https://developer.mozilla.org/en-US/docs/Web/CSS/@page/size

将这些代码添加到您的HTML文件中:

<div class="page">...</div>

将这些代码添加到您的CSS文件

@page {
    size: 21cm 29.7cm;
    margin: 30mm 45mm 30mm 45mm;
     /* change the margins as you want them to be. */
}

@media print {
    body{
        width: 21cm;
        height: 29.7cm;
        margin: 30mm 45mm 30mm 45mm; 
        /* change the margins as you want them to be. */
   } 
}

如果您认为确实需要像素(您实际上应该避免使用像素),您将必须注意选择正确的 DPI 进行打印:

  • 72 dpi(网页)= 595 X 842 像素
  • 300 dpi(打印)= 2480 X 3508 像素
  • 600 dpi(高质量打印)= 4960 X 7016 像素

但是,我会避免麻烦,只需使用 cm(厘米)或 mm(毫米)来确定尺寸,因为这样可以避免根据哪个客户端可能出现的渲染故障你使用。

关于A4 尺寸的 HTML div 大于 A4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65862676/

相关文章:

javascript - 并排固定 div - 一个覆盖另一个

CSS背景全长但不是全宽

html - CSS 替代表格行

javascript - HTML5 地理定位在 https 网站上失败

javascript - 创建要绘制的网格

css - 媒体查询捕获平板电脑肖像

javascript - 使用 Javascript 更改背景颜色后 :hover don't change the color

移动端和桌面端的 CSS 布局不同

javascript - IE 上的 Jquery.show 问题

html - 如何在移动 View 中修复页脚?页脚在移动 View 中进入整个页面