2010-06-15 13 views
10

sto usando CSS per stampare solo una parte di una pagina:CSS: elementi nascosti ancora occupa spazio sul risultato di stampa

body { 
visibility:hidden; 
    } 
    .print { 
    visibility:visible; 
    background-color: white; 
    margin: 0; 
    } 

La sezione sopra l'elemento che voglio stampare viene adeguatamente nascosti nella stampa uscita, tuttavia occupa ancora l'area dello spazio. Ho provato questo facendo una lunga lista verticale di parole. Nell'output di stampa si verifica la stessa area di spazio bianco senza le parole e quindi si verifica l'output dell'elemento. Questo problema si verifica solo su Chrome e Mozilla. Ho anche testato le opzioni di margine del browser e non è questo il problema.

Qualche idea?

risposta

17

Si desidera display:none non visibility:hidden. Quest'ultimo rende invisibile l'elemento, ma non lo rimuove dal flusso del documento.

+0

Grazie, il mio CSS è debole. Immagino sia una cattiva idea da mostrare: nessuno di tutto il corpo? Dovrei aggiungere ciò che voglio stampare sulla pagina o rimuovere quello che non voglio? – Cosmin

+0

Penso che 'display: none' su' body' sarebbe una cattiva idea, ma non l'ho mai provato! Probabilmente è meglio "visualizzare: nessuno" solo sugli elementi non stampabili (è possibile aggiungere loro una classe non stampabile nel markup). – Skilldrick

+0

Suona bene grazie. – Cosmin

1

display uso: nessuno; come si desidera visualizzare solo la stampa e nessuna parte del corpo.

2

Utilizzare @media per la stampa. Per esempio:

@media print { 
    * {display: none;} /*or if you want only the body*/ body {display: none;} 
    .print {display: block;} 
} 

(. Solo un esempio di un foglio di stile ruvido reale dovrebbe includere tutti gli elementi di una pagina invece di caratteri jolly)

Poi il foglio di stile viene utilizzato solo per la stampa, o l'anteprima di stampa.

-1

Anche visibility:collapse; lo fa! :)

+0

'visibility: collapse' è lo stesso di' visibility: hidden' se applicato a elementi non di tabella –

2

se vogliamo display:inline-block o display:block con visibilità nascosta.

Quindi possiamo usare follwing css come soluzione alternativa.

{ 
    visibility:hidden 
    width:0px; 
    height:0px 
} 
+0

Ero in esecuzione in problemi in cui avrebbe stampato 5 pagine nere perché il corpo era appena nascosto. Impostare l'altezza su 0 ha funzionato perfettamente! – Auzy

Problemi correlati