【问题标题】:Google Chrome handling page breaks differently on different computers谷歌浏览器在不同的计算机上处​​理分页符的方式不同
【发布时间】:2020-01-25 01:52:30
【问题描述】:

我正在为 Web 应用程序中呈现的报告最终确定打印样式表,并且已收到有关不同机器上的一些打印问题的通知。在我的页眉之前添加分页符时,我注意到大量添加的空格,这似乎与分页符有关。当我将background-color: green 等添加到页面的页眉或页脚时,空白显然不是由于两者。我的 Windows 10 操作系统机器和我作为备份的 Mac 操作系统都创建了一个打印预览文档,该文档按照我的预期尊重分页符,但另一台运行 Windows 10 的机器显示了添加的空白。

更新 - 其中一台遇到分页符问题的机器仅在特定 WiFi 连接上遇到问题。当连接到我工作位置的WiFi时,问题似乎从他的机器上消失了,但是当连接到他工作位置的WiFi时,问题又出现了。好诡异....

我将page-break-before: always 应用于我的标题内容,我的网站代码如下:

body {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  line-height: 1.3;
}

* {
  box-sizing: border-box;
}

.page-portrait {
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-top: 2%;
  margin-bottom: 2%;
  position: relative;
  width: 1350px;
  min-height: 279mm;
  padding: 30mm;
  border: 1px #D3D3D3 solid;
  border-radius: 5px;
  background: white;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
}

.report-row-preview {
  min-height: 4cm;
}

.header {
  margin-top: 1cm;
  page-break-before: always;
}

.footer {
  margin-top: 1cm;
}

.copyright {
  text-align: center;
  font-size: 10px;
  margin-bottom: 0;
}

@media print {
  html,
  body {
    width: 216mm;
    height: 279mm;
    background-color: white;
  }
  .page-portrait {
    border: none;
    box-shadow: none;
    padding: 0;
    margin-left: 4%;
    width: 100% !important;
  }
  .no-print {
    display: none !important;
  }
}
<div class="row page-portrait">
  <div class="row header">...</div>
  <div class="row report-row-preview">...</div>
  <div class="row report-row-preview">...</div>
  <div class="row report-row-preview">...</div>
  <div class="row footer">...</div>
</div>

最后,这是我所指的添加空白的屏幕截图:

很高兴在必要时提供更多的清晰度,我只是用这个把头撞到墙上。

【问题讨论】:

  • 279mm 好像是美国字母?浏览器是否会根据第一台可见的真实或虚拟打印机之类的东西假设 A4 是默认值?这似乎或多或少是它在某一时刻的工作方式:support.google.com/chrome/forum/AAAAP1KN0B0wEQDDKKItY8
  • 无论如何,我都会用明确设置的 A4 预览,看看它是否会重现问题..
  • 我已经用 A4 进行了预览,但问题仍然存在。太奇怪了,某些 WiFi 连接会导致问题消失,而其他连接会导致问题出现。它真的与它看到的第一台可见打印机有关吗?即使在“打印预览”下展开“更多设置”时默认选择的纸张尺寸是“Letter”?
  • 您是否尝试过在 CSS 中明确定义 @page 属性? IE。不是html, body。我记得它们对于某些生成分页输出的库非常重要(尽管它们在浏览器中没有得到很好的支持)。 caniuse.com/#feat=css-paged-media
  • @rahlf23 你能附上横向和纵向的屏幕截图吗?我觉得你附加的当前样式是横向的。

标签: html css google-chrome print-css


【解决方案1】:

一个原因可能是机器具有不同的缩放设置,例如,笔记本电脑通常具有 125% 的缩放,这会影响浏览器。处理它的方法是让它在 125% 缩放时看起来不错,然后在 100% 缩放时得到一点空间,但是你会看到很多网站已经像这样工作了。

【讨论】:

  • 窗口缩放不应影响 PRINT CSS 的应用方式。但是@rahlf23 我​​建议这个&lt;meta name="viewport" content="width=device-width,initial-scale=1"&gt; 在您的HTML 标头中
  • 从物理上看监视器,它绝对会影响网站的显示方式,但是由于这个答案似乎是 wifi 的更多问题,所以...相对与绝对路径 dns 解析问题?跨度>
  • 是的,但问题是关于打印 css。缩放不会造成额外空间注意我是操作系统打印预览的截图。
【解决方案2】:

您必须学习如何添加 css 以便它可以在两个 WiFi 网络上运行。确保以相对形式添加 css。

&lt;link rel="stylesheet" type="text/css" href="mystyle.css"&gt; 而不是http://acx/we.css。 确保它是内部 css。有时当您使用外部 css 并且您有不同的连接 WiFi 和 LAN 时,您的公司安全性会发生变化。因此,基于路径的公司可能会阻止 css。 在 Chrome 的开发者工具中检查网络下的流量日志。检查 401。检查 css 在 Chrome 开发者工具中的元素下是否被覆盖。

【讨论】:

  • 你从哪里得到他“[必须]学习如何添加 css”的印象?
  • Css 在其中一个 WIFI 网络中被阻止。一些公司阻止外部 url 非 https url 。有时制作相对路径会有所帮助。我在一家律师事务所工作,我们一直看到这些问题。有时甚至 Windows 身份验证也会基于路径产生问题。
  • @Cameron Hurd 你有没有看到未签名的字体因为公司的私人安全防火墙而被阻止?在安全性很低或很少的小公司工作的人永远不会看到这些问题。
  • 他的屏幕截图表明样式表已加载并正在应用中。
  • 您是否看到 2 个屏幕截图或 3 个屏幕截图,其中一个具有不同的 wifi,而另一个具有不工作的 wifi?
【解决方案3】:

我无法解决奇怪的 wifi 问题...但至于一致的尺寸,您应该确保所有您的测量值采用 打印机友好单位 .

我的猜测是您获得了额外的空间,因为每个操作系统/机器在打印时对 px 和 percent 的解释不同。

font-size 尤其如此,这可能会根据屏幕密度的转换方式而有所不同。这反过来又会导致您的 page-break 和包装规则位于不同的位置。这会产生不同的间距。

尝试在pt 中指定font-size,在cm 或mm 中指定width/margin

例如你有这个规则:

.page-portrait {
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-top: 2%;
  margin-bottom: 2%;
  position: relative;
  width: 1350px;
  min-height: 279mm;
  padding: 30mm;
  border: 1px #D3D3D3 solid;
  border-radius: 5px;
  background: white;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
}

我会改成:

margin-top: 1cm;
margin-bottom: 1cm;
width: 210mm;

还有font-size: 10px 可能会转换为font-size: 8pt,但您需要使用该大小来使其正确。

【讨论】:

  • 不是 css 问题,是 css 的某些部分在特定 wifi 上无法工作的渲染。
  • @JinThakur 除非您是遇到问题的人,否则您不能声明一件事或另一件事确实不是问题。
  • 布莱斯豪威森在问题中提到。我在我的公司看到切换网络可以改变网站行为。来自 OP UPDATE 的报价 - 其中一台遇到分页符问题的机器仅在特定 WiFi 连接上遇到问题。当连接到我工作位置的WiFi时,问题似乎从他的机器上消失了,但是当连接到他工作位置的WiFi时,问题又出现了。很奇怪。
  • @JinThakur 是的,OP 说了 ONE 的机器。我们看到的症状通常是复合问题的结果。事实仍然存在,只有 OP 才能说出某事是否是解决方案。
  • @BryceHowitson 谢谢你的回答。回到办公室,让我玩弄这个,然后回到你身边。
猜你喜欢
  • 2011-12-30
  • 2015-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-22
  • 2019-01-16
  • 2021-04-16
  • 2017-03-31
相关资源
最近更新 更多