只打印<div id=“printrea”></div>?

只打印<div id=“printrea”></div>?

如何打印指定的div(而不手动禁用页面上的所有其他内容)?

我想避免一个新的预览对话框,所以创建一个新的窗口使用这个内容是没有用的。

该页包含两个表,其中一个包含我想打印的div-表的样式是视觉样式的网页,不应该显示在打印。


慕的地6264312
浏览 475回答 3
3回答

波斯汪

下面是一个通用的解决方案,使用仅CSS我已经证实了这一点。@media&nbsp;print&nbsp;{ &nbsp;&nbsp;body&nbsp;*&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;visibility:&nbsp;hidden; &nbsp;&nbsp;} &nbsp;&nbsp;#section-to-print,&nbsp;#section-to-print&nbsp;*&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;visibility:&nbsp;visible; &nbsp;&nbsp;} &nbsp;&nbsp;#section-to-print&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;position:&nbsp;absolute; &nbsp;&nbsp;&nbsp;&nbsp;left:&nbsp;0; &nbsp;&nbsp;&nbsp;&nbsp;top:&nbsp;0; &nbsp;&nbsp;}}另一种方法不是很好。使用display是很棘手的,因为如果任何元素display:none那么它的后代也不会展示。要使用它,您必须更改页面的结构。使用visibility工作更好,因为您可以打开可见性的后代。无形的元素仍然影响布局,所以我移动section-to-print

Cats萌萌

我有一个更好的解决方案,用最少的代码。将可打印的部分放入具有如下ID的div中:<div&nbsp;id="printableArea"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<h1>Print&nbsp;me</h1></div><input&nbsp;type="button"&nbsp;onclick="printDiv('printableArea')"&nbsp;value="print&nbsp;a&nbsp;div!"&nbsp;/>然后添加一个类似onClick的事件(如上面所示),并像上面一样传递div的id。现在,让我们创建一个非常简单的javascript:function&nbsp;printDiv(divName)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;printContents&nbsp;=&nbsp;document.getElementById(divName).innerHTML; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;originalContents&nbsp;=&nbsp;document.body.innerHTML; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.body.innerHTML&nbsp;=&nbsp;printContents; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.print(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.body.innerHTML&nbsp;=&nbsp;originalContents;}注意到这有多简单?没有弹出窗口,没有新窗口,没有疯狂的样式,没有像jQuery这样的JS库。真正复杂的解决方案(答案并不复杂,也不是我所指的)的问题在于,它永远不会在所有浏览器上翻译!如果希望使样式有所不同,请按照选中的答案中所示,将media属性添加到样式表链接(media=“print”)中。没有绒毛,重量轻,它只是起作用了。

偶然的你

到目前为止,所有的答案都有很大的缺陷-它们要么包括添加class="noprint"为了一切,否则就会搞砸display内#printable.我认为最好的解决方案是围绕不可打印的内容创建一个包装器:<head> &nbsp;&nbsp;&nbsp;&nbsp;<style&nbsp;type="text/css"> &nbsp;&nbsp;&nbsp;&nbsp;#printable&nbsp;{&nbsp;display:&nbsp;none;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;@media&nbsp;print&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#non-printable&nbsp;{&nbsp;display:&nbsp;none;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#printable&nbsp;{&nbsp;display:&nbsp;block;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;</style></head><body> &nbsp;&nbsp;&nbsp;&nbsp;<div&nbsp;id="non-printable"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Your&nbsp;normal&nbsp;page&nbsp;contents&nbsp;&nbsp;&nbsp;&nbsp;</div> &nbsp;&nbsp;&nbsp;&nbsp;<div&nbsp;id="printable"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Printer&nbsp;version&nbsp;&nbsp;&nbsp;&nbsp;</div></body>当然,这并不完美,因为它涉及到在HTML中移动一些东西.
打开App,查看更多内容
随时随地看视频慕课网APP