Print lt;div id=quot;printareaquot;gt;lt;/divgt; only?(打印 lt;div id=printareagt;lt;/divgt;只要?)
问题描述
如何打印指定的 div(无需手动禁用页面上的所有其他内容)?
How do I print the indicated div (without manually disabling all other content on the page)?
我想避免一个新的预览对话框,所以用这个内容创建一个新窗口是没有用的.
I want to avoid a new preview dialog, so creating a new window with this content is not useful.
该页面包含几个表格,其中一个包含我要打印的 div - 该表格的样式是 Web 的视觉样式,不应在打印中显示.
The page contains a couple of tables, one of them contains the div I want to print - the table is styled with visual styles for the web, that should not show in print.
推荐答案
这是一个通用的解决方案,使用 CSS only,我已经验证可以工作.
Here is a general solution, using CSS only, which I have verified to work.
@media print {
body * {
visibility: hidden;
}
#section-to-print, #section-to-print * {
visibility: visible;
}
#section-to-print {
position: absolute;
left: 0;
top: 0;
}
}
替代方法不是很好.使用 display
很棘手,因为如果任何元素有 display:none
那么它的后代都不会显示.要使用它,您必须更改页面结构.
Alternative approaches aren't so good. Using display
is tricky because if any element has display:none
then none of its descendants will display either. To use it, you have to change the structure of your page.
使用 visibility
效果更好,因为您可以打开后代的可见性.不可见的元素仍然会影响布局,所以我将 section-to-print
移动到左上角以便正确打印.
Using visibility
works better since you can turn on visibility for descendants. The invisible elements still affect the layout though, so I move section-to-print
to the top left so it prints properly.
这篇关于打印 <div id="printarea"></div>只要?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:打印 <div id="printarea"></div>只要?
基础教程推荐
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- 响应更改 div 大小保持纵横比 2022-01-01
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- 在for循环中使用setTimeout 2022-01-01
- 动态更新多个选择框 2022-01-01
- 悬停时滑动输入并停留几秒钟 2022-01-01
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01
- 我什么时候应该在导入时使用方括号 2022-01-01