Ho una pagina con molti dati, tabelle e contenuti. Voglio fare una versione di stampa che mostrerà solo pochissime cose selezionate.Come mostrare solo alcune parti con i CSS per la stampa?
Invece di scrivere un'altra pagina solo per la stampa, stavo leggendo la funzione CSS per "@media print".
Innanzitutto, quali browser lo supportano? Poiché questa è una funzionalità interna, è OK se solo gli ultimi browser lo supportano.
Stavo pensando di etichettare alcuni elementi DOM con una classe "stampabile", e in pratica di applicare "display: none" a tutto tranne quegli elementi con la classe "stampabile". È fattibile?
Come ottengo questo?
EDIT: Questo è quello che ho finora:
<style type="text/css">
@media print {
* {display:none;}
.printable, .printable > * {display:block;}
}
</style>
ma nasconde tutto. Come faccio a rendere visibili quegli elementi "stampabili"?
EDIT: Cercando ora l'approccio negativo
<style type="text/css">
@media print {
body *:not(.printable *) {display:none;}
}
</style>
Questo sembra buono in teoria, ma non funziona. Forse "non" non supporta il css avanzato ...
Penso che si dovrebbe avvicinarsi dall'altra parte. NASCONDI il contenuto che non deve essere stampato, al contrario di nascondere tutto e mostrare solo i bit che vuoi stampare. Perché non è davvero possibile ottenere in CSS in modo pulito. – Strelok
È possibile farlo nel modo consigliato da @Strelok: è possibile contrassegnare tutti gli elementi che non devono essere inclusi nella stampa come non-stampa, evitando di contrassegnare un contenitore degli elementi che si desidera effettivamente. .no-print {display: none:} Ma è davvero stupido. Il modo in cui vuoi farlo è più pulito e intelligente. Ma triste, questo sembra essere l'unico modo. Spero che non lo sia. Che cosa si vuole fare è un caso d'uso buono per un genitore selettore CSS: https://css-tricks.com/parent-selectors-in-css/ Si potrebbe dire: * {display: none; } .printable, .printable <* {display: block} Triste che il selettore non esiste. – jgomo3