Moin!
@media print{
table, td, tr, p { display: none; }
.print { display: block; }
}
Und in der Html-Datei:
...
<span class="print">
<table>
...
</table>
</span>
...
Das heißt, diese eine Tabelle soll gedruckt werden. Was ist hier falsch?
Ist doch logisch: Du willst ein <span> angezeigt haben und die enthaltene Tabelle nicht anzeigen - so ist es im CSS definiert.
Andersrum klappts auch nicht:
<table><tr>
<td><span class="print">Das wird trotzdem nicht gezeigt</span></td>
</tr></table>
Das Beste ist, wenn du dir _vorher_ überlegst, was du auf dem Bildschirm, und was du auf dem Papier haben willst, all diesen Elementen dann irgendeine Klasse oder ID gibst (die Klassen müssen nicht immer dieselben sein), und zwei Stylesheets anlegst:
screen.css:
#navigation {formatierungen}
.klasse1 {formatierungen}
.klasse2 {formatierungen}
.klasse3 {formatierungen}
.druckhinweis {display:none;}
print.css:
#navigation {display:none;}
.klasse1 {display:none;}
.klasse2 {formatierungen}
.klasse3 {display:none;}
.druckhinweis {formatierungen}
Wenn du jedem Element auf der Seite eine Sinnbedeutung gibst, kannst du anhand dieser Bedeutung viel leichter entscheiden: Soll das Element auf dem Bildschirm erscheinen? Soll es beim Druck erscheinen? Wie soll es jeweils aussehen?
Am Beispiel: Die ID "navigation" ist vielleicht ein Layer mit der (Haha!) Navigation. Die wird nicht mitgedruckt. "klasse1" könnte für Bilder da sein - wird ebenfalls nicht gedruckt. "klasse2" wird auf Bildschirm und Papier ausgegeben, "klasse3" wieder nur auf den Bildschirm. Die Klasse "druckhinweis" dagegen wird am Bildschirm nicht angezeigt und könnte irgendeinen Hinweis enthalten, der nur beim Drucken sichtbar ist.
Ach ja: Was bei Druck-Stylesheets Sinn macht: Schwarze Schriftfarbe einstellen, weiße Hintergrundfarbe. Man muß nicht unbedingt bunt drucken. Links sollten, sofern sie denn im Fließtext stehen, ohne Unterstreichung und am besten auch ohne farbliche Hervorhebung gedruckt werden - auf Papier kann man sie nicht anklicken, die Hervorhebung würde aber den Lesefluß stören.
- Sven Rautenberg