【问题标题】:Print preview not the same as print emulation in Chrome打印预览与 Chrome 中的打印模拟不同
【发布时间】:2014-11-25 05:54:40
【问题描述】:
为什么打印预览 (cmd + p) 与 Chrome (37 Mac OS X) 上的控制台媒体打印仿真不同?
打印预览:
媒体打印仿真:
我正在使用 Drupal 7 并且我的 css 配置 theme.info print 不会覆盖页面上的块宽度,但是我设置了:
stylesheets[all][] = css/style.css
stylesheets[print][] = css/print.css
但是其他部分被很好地覆盖了。有人知道为什么吗?
【问题讨论】:
标签:
google-chrome
printing
media
【解决方案1】:
打印预览将在应用 CSS 过渡之前显示您的页面,因此如果在移动某些元素时存在过渡,打印预览将在该过渡之前显示它们。如果您对列、响应式设计、滑出菜单等使用 CSS 过渡,这尤其棘手。
所以要在你的打印样式表中修复它,你需要添加以下样式:
@media print {
*{ transition: none !important }
}
如果上述解决方案对您不起作用,则原因可能是 chrome,Chrome 不会禁用打印媒体的转换属性。
在 Chrome DEVTools print emulation css media 中的选项仅用于将打印 css 规则应用于页面,出于测试目的,它不考虑与打印相关的所有其他事情,它显示打印预览但有时它会不将打印页面显示为实际打印预览。
不同的浏览器在打印页面时表现不同。唯一的测试打印的最佳方法是实际打印,或打印到 pdf。
如果您使用的是引导程序,那么如果您仅使用 col-md-* 或 col-sm-* 它将不起作用,但如果您使用 col-xs-* 那么它将起作用,因为问题是页面本身很小像素,所以 bootstrap 认为它需要应用 xs 样式。