2012-11-30 19 views
6

Mam dane tabeli, a ostatnia kolumna zawiera łącza do działań na tych danych. Chciałbym, aby ostatnia kolumna nie była widoczna, gdy ktoś wydrukuje stronę.CSS ukryj kolumnę tabeli do wydrukowania

Próbowałem następujących rzeczy i to działa na ekranie (nie widzę ostatniej kolumny, a reszta kolumn jest równomiernie rozłożona, aby wypełnić to miejsce).

@media print { 
    table td:last-child {display:none} 
} 

Ale to nie działa w przypadku druku: nie widzę kolumny, ale jest tam puste miejsce.

+1

proszę zamieścić swoje znaczniki. – KatieK

Odpowiedz

0

jQuery

$("element").click(function(){ 
    $("td:last-child").remove(); 
}); 

Edit: Wtedy może visibility:collapse w stylu css pomogłoby

+1

To całkowicie usunie go z DOM. Po prostu nie chcę tego widzieć na papierze. – user1588241

+0

nadal nie działa – user1588241

12

Działa to dla mnie:

@media print { 
     table td:last-child {display:none} 
     table th:last-child {display:none} 
    } 
1

Jest bardziej uniwersalnym rozwiązaniem, które można zastosować w wielu różnych elementach. Utwórz plik print.css z:

.noprint { 
display: none; 
} 
0

Table Screen Shot

Kod przycisk Drukuj

function PrintData() 
{ 
     var divToPrint1 = document.getElementById("editable"); 
     var divToPrint = divToPrint1; 
     divToPrint.border = 1; 
     divToPrint.cellSpacing = 0; 
     divToPrint.cellPadding = 2; 
     divToPrint.style.borderCollapse = 'collapse'; 

     newWin = window.open(); 
     newWin.document.write(getHeader()); 
     newWin.document.write("<h3 align='center'>Master Designation List </h3>"); 
     $('tr').children().eq(3).hide(); 
     $('table tr').find('td:eq(3)').hide(); 
     newWin.document.write(divToPrint.outerHTML); 
     newWin.print(); 
     $('tr').children().eq(3).show(); 
     $('table tr').find('td:eq(3)').show(); 
     newWin.close(); 
}