如何在 Angular 中为一页添加单独的 CSS?
这是我需要的 CSS,根据如何从打印页面中删除 URL?:
@media print{
@page{
margin:0;
}
body{
margin:30px;
}
}
::ng-deep
但是在这里用or将CSS 放入组件中ViewEncapsulation.None
没有帮助,因为当导航离开页面时,页面的 CSS 不会被删除。
我添加了一个Stackblitz,它清楚地解释了这个问题。
我想出了一个潜在的解决方案,但它不起作用:
encapsulation: ViewEncapsulation.None
...
constructor(private renderer: Renderer2) {
this.renderer.addClass(document.body, 'special-print');
}
ngOnDestroy() {
this.renderer.removeClass(document.body, 'special-print');
}
....
....
....
@media print{
@page{
margin:0;
}
body.special-print{
margin:30px;
}
}
为什么它不起作用:
虽然它对 CSS 有帮助<body>
,但对 CSS 没有帮助@page
。也许这个问题可以更好地概括为“如何添加全局 CSS,但在我们离开页面时将其删除?”。