html - 用元素填充页面以打印到边距
问题描述
我正在尝试使用一<div>
组来填充要打印的页面100vh
和100vw
(关于相对视口高度和宽度的MDN 教程)。
我希望页面(和视口)用带有红色边框的灰色矩形填充到边缘。
经测试
- 铬 (85.0.4183.102)
- 边缘 (44.18362.449.0)
- 火狐 (80.0.1)
铬合金:
- 画面:好的
- 打印预览:OK
- 打印(PDF):好的
边缘:
- 屏幕:无下边框
- 打印预览:OK
- 打印:好的
火狐:
- 屏幕:无下边框
- 打印预览:一页右侧有红色矩形截断,不填满页面(约 3/4)
- 打印(至 PDF 打印机):两页,右侧截断
启用“缩小以适应”会导致打印预览中出现空白页,并且打印是大约 2/3 宽度和高度的矩形。以零边距和 100% 打印到 A4,预览看起来像 FF 将横向与纵向混淆并在右侧切断,但“打印”几乎是正确的,红线和底部边缘之间只有一点间隙这页纸。
似乎 Firefox 中的边距被打破,然后https://bugzilla.mozilla.org/show_bug.cgi?id=1329527可能是相关的。
但是在我打开另一个错误报告之前,有人可以确认我的 CSS 方法是正确的吗?还有另一种方法/解决方法可以让它在所有当前浏览器中工作吗?
html,
body,
#test {
margin: 0;
padding: 0;
}
#test {
box-sizing: border-box;
height: 100vh;
width: 100vw;
border: 1px solid red;
background: gray;
}
<div id="test"></div>
我实际上正在使用这个文件进行测试:
<!doctype html>
<html lang="en">
<head>
<meta charset=UTF-8>
<title>test</title>
<style>
html, body, #test{
margin:0;
padding:0;
}
#test{
box-sizing: border-box;
height: 100vh;
width: 100vw;
border: 1px solid red;
background: gray;
}
</style>
</head>
<body>
<div id="test"></div>
</body>
</html>
解决方案
这是火狐的问题。计划于 2020 年 9 月 22 日发布的版本 81 对这种场景有更好的支持。
推荐阅读
- amazon-web-services - 替换从 VAST 代码返回的多个 HLS VOD 片段
- blogger - 如何检查延迟加载脚本是否适用于 Blogger 帖子中上传的图像?
- django - 在 Django 中验证复杂的关系
- pipe - 是否保证 POSIX shell 在执行管道中的任何命令之前始终打开文件进行重定向?
- c# - 如何让玩家忽略代码中与另一个游戏对象的碰撞?
- android - 使用数据绑定(Kotlin)时如何修复自定义 ArrayAdapter 下拉视图剪辑最终项目
- .net - Graphics DrawPath 在渲染文本时产生意外的结果
- python - django 用户更新表单未更新
- python - 无法从python访问redis实例
- sql - 如何使用具有 varchar 列的 unpivot 和 pivot 转置表?