css - 在使用 css 打印之前缩放 html 表

标签 css html-table printing-web-page

我有一个表格作为 HTML 文档的全部内容(出于合法的表格目的……它是表格数据,而不是用于布局)。一些单元格指定了宽度和高度(不是通过 css,而是在表格结构中使用旧的内联大小调整),但整个表格没有指定宽度或高度。这是一个相当大的表格,但通过适当的缩放(大约 70%),它可以打印在一张纸上以很好地适应。这可以通过在 IE、Firefox 和 Chrome 的打印机设置中使用 scale page 功能来实现。有没有一种方法可以将整个页面(在我的例子中就是这张表)作为打印样式表的一部分进行缩放(我知道 @media print {} 但那里的语句被忽略了.. .问题在于正确的缩放命令,而不是设置打印 css)?我可以用这个缩放屏幕 View :

body {
   transform: scale(.7);
}

然而,在打印时,Chrome(和其他)忽略我的比例并自动缩放表格以适合纸张的宽度,这导致我的表格被分成第二页。我也尝试过应用它但没有成功:

table {page-break-inside: avoid;}

最佳答案

我知道我在起死回生,但为了以后的搜索结果引用:

我遇到了超宽表格的问题,导致所有浏览器错误地计算高度并在单个页面上多次重复 thead - 我的解决方案是将 zoom: 80% 应用到正文(% 根据您的需要而变化) 这迫使我们的页面有效地适合打印,然后在每一页的顶部正确地重复了 thead。也许尝试缩放会在变换不起作用的地方起作用。

示例 CSS

@media print {
  body {
    zoom: 80%;
  }
}

关于css - 在使用 css 打印之前缩放 html 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28757370/

相关文章:

html - 打印时为每页添加边框,没有任何边框中断

html - 避免打断打印页面 CSS 的非重复表页脚

html - div 中的 css 同级选择器 div

jQuery 数据表检查

javascript - 删除元素的父行

css - 将此 CSS 样式应用于 gridview

angular - 如何在打印页面之前等待 DOM 完全加载?

html - 如何在一行中排列输入文本/文件

css - 全屏 CSS3 "Cube"过渡

javascript - jqueryMobile 应用程序无法使用 jquryMobile 框架 js 和 css 文件相对路径