css - Angular - 打印功能不加载 css

标签 css angular printing

我正在尝试在我的 Angular 应用程序中实现打印功能。这是我到目前为止所做的:

typescript

print() {

    let printContents, popupWin;
    printContents = document.getElementById('print-section').innerHTML;
    popupWin = window.open();
    popupWin.document.open();
    popupWin.document.write(`
          <html>
            <head>
              <link rel="stylesheet" type="text/css" href="print.component.css">
            </head>
            <body onload="window.print();window.close()">${printContents}</body>
          </html>`
    );
    popupWin.document.close();
  }

html

<div id="print-section" hidden>
  <div class="red">Hello</div>
</div>

CSS

.red{
    color:red;
}

打印的东西有效,但它不加载 css。如果我添加 <style> write() 内的标签它起作用的功能。为什么没有加载 css? .css文件和 .ts文件在同一个文件夹中。

编辑:感谢@match 的建议,我意识到浏览器在当前路径中查找 css 文件,即 www.myurl.it/currentpage/print.component.css。相反,我希望浏览器在源文件夹中查找文件,即 coponents/myComponent。有办法吗?

最佳答案

使用

@media print {
      .red{
    color:red;
  }
}

关于css - Angular - 打印功能不加载 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48864037/

相关文章:

javascript - 选择单选按钮后隐藏和显示 div

css - 如何自定义浏览器的打印/打印预览输出?

html - css 固定位置页脚打印

c++ - 我的 C++ 程序中的 char 数组不会打印任何内容

html - 我可以在背景上显示 DIV 画廊吗?

html - 缩小屏幕尺寸时保持边距?

HTML 表单输入背景图片

node.js - 如何在 Angular 7 中创建使用 FS 模块列出目录中文件的服务?

angular - 将模板向下传递到压缩网格列

arrays - 如何从 typescript 中的JSON中提取特定值