作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在单个 Angular 组件中,我希望有一个打印按钮,当用户单击该按钮时,将打印一个 div
从我的组件模板。
我知道 this答案有效,我试过了。但我不喜欢我需要重新应用所有样式或重写 <style>
中的所有样式。头标签。
我真的很喜欢this回答但我无法让它工作。我认为这可能与在提供/构建应用程序后如何重命名类有关。
这就是我实现上述答案但无法使其工作的方式。
组件.ts
onPrint() {
window.print();
}
<div class="print">
<button (click)="onPrint()">Print</button>
all the stuffs I want to print
</div>
@media print {
:not(.print) {
display: none !important;
}
}
最佳答案
组件 CSS 中的样式仅适用于该单个组件,这就是父组件 mat 选项卡仍显示的原因。
作为替代方案,您可以将样式添加到 style.css
中。/styles.scss
.这样做的问题是父 DOM 元素(例如 body
)将设置为 display: none
同样,所以什么都看不到。
您可以尝试使用 visibility
在 styles.css
像这样:
@media print {
:not(.printMe) {
visibility: hidden;
}
}
@media print {
.printMe {
visibility: visible
}
}
hidden
元素仍会占用页面空间。
关于angular - 如何在 Angular 中打印单个组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52561686/
我是一名优秀的程序员,十分优秀!