I have a page with lots of data, tables and content. I want to make a print version that will only display very few selected things.
Instead of writing another page just for printing, I was reading about CSS's feature for "@media print".
First, what browsers support it? Since this is an internal feature, it's OK if only the latest browsers support it.
I was thinking of tagging a few DOM elements with a "printable" class, and basically apply "display:none" to everything except those elements with the "printable" class. Is that doable?
How do I achieve this?
EDIT: This is what I have so far:
<style type="text/css">
@media print {
* {display:none;}
.printable, .printable > * {display:block;}
}
</style>
But it hides everything. How do I make those "printable" elements visible?
EDIT: Trying now the negative approach
<style type="text/css">
@media print {
body *:not(.printable *) {display:none;}
}
</style>
This looks good in theory, however it doesn't work. Maybe "not" doesn't support advanced css ...