Sven Rautenberg: "<?=$PHP_SELF?>?printversion=1" funktioniert nicht

Beitrag lesen

Moin!

Mmh, hier wird wohl mein Fehler liegen. Mal sehen, ob ichs noch hinbekomme.
So, wie ich gelesen habe (auf http://www.css-praxis.de/tipps.html), muss es doch so (mit "?printversion=1") funktionieren, oder?

Ja, aber nur, wenn serverseitig ein Skript werkelt, den Parameter erkennt und dynamisch das Druckstylesheet als Screenstylesheet (und Druckstylesheet) einbindet.

Auf deutsch:
Du brauchst keine extra Druckansicht, wenn du folgendes tust:
"screen.css" (Dateiname ist natürlich frei) als media="screen" einbinden.
"print.css" (Dateiname ist natürlich auch frei) als media="print" einbinden.

In screen.css ist die Definition für die Bildschirmausgabe, in print.css die für die Druckausgabe. Je nach Browser siehst du von dieser Druckausgabe erst was beim Ausdrucken (irgendein IE 5.x hat keine Druckvorschau), oder schon bei der Druckvorschau (Opera ist da besonders hervorzuheben, die Druckansicht kann man direkt per Button umschalten).

Ein ordentlicher Browser (und ich kenne in diesem Zusammenhang keine unordentlichen Browser) wird niemals das print.css, welches mit media="print" (oder mit einem passenden @import) eingebunden ist, für die Bildschirmdarstellung verwenden.

Deshalb: Wenn du die Druckdarstellung im Browserfenster darstellen willst, ohne dass der Benutzer die Druchvorschau benutzt, dann mußt du (deswegen der URL-Parameter) dynamisch das print.css auch für media="screen" einbinden.

Oder du bindest einmal ohne media-Angabe das screen.css ein (gilt dann auch für die Benutzer, die diese Seite direkt ausdrucken - ist also reichlich sinnlos), und in der Druckausgabe dann das print.css.

Sowas ist aber tatsächlich unnötiger Doppelaufwand. Erstens muß man als Benutzer dann die fast gleiche HTML-Seite zweimal laden, einmal fürs angucken, einmal fürs Drucken, und zweitens muß dafür natürlich Serverlogik arbeiten, obwohl der Browser den Druck viel einfacher direkt gestalten könnte, indem einfach zwei Stylesheets eingebunden sind - eins für screen, eins für print.

- Sven Rautenberg

--
"Habe den Mut, dich deines eigenen Verstandes zu bedienen!" (Immanuel Kant)