【问题标题】:Using @media print with Angular doesn't work在 Angular 中使用 @media print 不起作用
【发布时间】:2018-01-09 17:54:09
【问题描述】:

我正在尝试使用 Angular (5+) 创建一个可打印的页面,但是我遇到了样式问题。

我要打印的内容在组件内部,样式是通过在 stylesUrls 下定义的文件发送的,如下所示:

@Component({
    templateUrl: 'print-page.html',
    styleUrls: [
        '_print-page.scss'
    ],
})

蚂蚁的样式是这样的:

@media print {
    body *:not(#print),
    aside {
        display: none !important;
    }

    #print {
        figure {
            display: none;
        }
    }
}

但是当我打开打印选项卡页面时,图形元素被隐藏了,但是例如 side 元素仍然显示在页面上。它没有被隐藏。

我尝试将样式移出组件并将其直接设置在样式文件中。当我这样做时,其他元素被隐藏,包括要打印的 div。无论我做什么,我都无法阻止样式只显示#print div。

我该怎么办?

【问题讨论】:

  • 尝试将您的 .ts 文件添加到内联 .css 中,例如 popupWinindow.document.write(' QR Code head>' + innerContents + '');

标签: angular printing media-queries


【解决方案1】:

如果您使用 angular cli,请将您的打印 scss 移动到 .angular-cli.json 文件。这样,当您的组件加载时,它就可用并准备就绪。

  "prefix": "xyz",
  "styles": [
    "_print-page.scss",
    "style.scss",

您可以阅读查看 reder 选项了解更多详情

【讨论】:

  • 我已经试过了。我的意思是,我没有在样式下设置scss文件,而是直接在style.scss文件上导入。它删除了元素等。但它没有将任何其他样式应用于具有 id 打印的 div。
  • @media 属性是我认为页面级别而不是组件级别。如果可行,请直接添加到 cli 配置中尝试一次。不知道为什么它没有注入 html 思想
猜你喜欢
  • 2012-09-30
  • 2013-07-30
  • 2021-10-10
  • 2020-03-31
  • 1970-01-01
  • 1970-01-01
  • 2015-10-11
  • 2021-04-06
  • 2017-09-14
相关资源
最近更新 更多