我有一个包含大量数据,表格和内容的页面。 我想制作一个打印版本,只显示很少选择的东西。如何仅使用CSS打印某些部分?
而不是写另一个页面只是为了打印,我正在阅读关于CSS的“@media print”功能。
首先,哪些浏览器支持它?由于这是内部功能,因此只有最新的浏览器支持它才行。
我正在考虑用一个“可打印”类来标记几个DOM元素,并且基本上将“display:none”应用于除了那些具有“可打印”类的元素之外的所有东西。 这可以吗?
我该如何做到这一点?
编辑: 这是我到目前为止有:
<style type="text/css">
@media print {
* {display:none;}
.printable, .printable > * {display:block;}
}
</style>
但是它隐藏的一切。如何使这些“可打印”元素可见?
编辑: 现在正试图否定的做法
<style type="text/css">
@media print {
body *:not(.printable *) {display:none;}
}
</style>
这看起来在理论上很好,但它不工作。也许“不”不支持高级CSS ...
元素,我认为你应该从另一个侧面接近它。隐藏不打印的内容,而不是隐藏所有内容,只显示要打印的位。因为用干净的方式实现CSS是不太可能的。 – Strelok 2010-08-12 00:34:38
它实际上可以像@Strelok所建议的那样进行:您可以将不应包含在打印中的所有元素标记为不打印,从而避免标记您实际需要的元素的容器。 .no-print {display:none:} 但它真的很笨。你想要做到这一点的方式更清洁,更聪明。但悲伤,这似乎是唯一的方法。希望它不是。 你想要做什么是一个很好的用例父CSS选择器:https://css-tricks.com/parent-selectors-in-css/ 你可以说: * {显示:无; } .printable,.printable <* {display:block} 悲伤的是选择器不存在。 – jgomo3 2015-08-01 03:53:47