如何在打印预览页面上加载打印媒体样式

Posted

技术标签:

【中文标题】如何在打印预览页面上加载打印媒体样式【英文标题】:How to load print media styles on a print preview page 【发布时间】:2017-04-08 01:42:25 【问题描述】:

我的 (Angular 1.x) 应用程序中有一个专门用于打印的页面。虽然我的应用程序的打印媒体样式应该并且确实在用户选择打印时应用,但我希望它们始终应用在这一页上(就像您打开了 Chrome 的打印媒体模拟一样)。

我正在努力避免在另一个课程中重复我的所有印刷媒体样式。我曾希望我可以像这样使用 SASS 继承:

.print-styles 
  // all of my print styles here


.my-print-page 
  @extend .print-styles;


@media print 
  @extend .print-styles;

...但 SASS 不允许在 @media 指令中使用 @extend

实现这一目标的最佳方法是什么?

【问题讨论】:

【参考方案1】:

我会回答我自己的问题,以防将来有人偶然发现这个问题。解决方案非常简单——不要使用@extend,而是编写一个mixin并使用@include

@mixin print-styles 
  // all of my print styles here


.my-print-page 
  @include .print-styles;


@media print 
  @include .print-styles;

【讨论】:

以上是关于如何在打印预览页面上加载打印媒体样式的主要内容,如果未能解决你的问题,请参考以下文章

在 chrome 中打印预览后管理图像的 css 样式

打印破坏页面

如何添加打印按钮或链接到你的网页

Chrome 打印预览改变了网页的样式

TML 打印预览问题,怎么设置有些内容不出现在打印预览页面上。怎么控制,有下代码 看得不是很懂 求解释

s-s-rS如何在打印预览中重复每页上的表头