Warning: Die direkte Verwendung von PHP-Tags ist nicht erwünscht in /www/htdocs/txpa/textpattern/publish.php on line 996
txp resources [ge]: CSS Stylesheet für den Druck mit TXP

textpattern resources [ge]

Frisch aus der Presse

CSS Stylesheet für den Druck mit TXP

Autor: Alex
 

Über ein gesondertes Stylesheet kann man Artikel oder Seiten speziell für den Ausdruck vorbereiten. In TXP wird das Druck-Stylesheet im head Bereich der entsprechenden Seitenvorlagen einfach mittels:

<link rel="stylesheet" href="<txp:css n="print" />" type="text/css" media="print" />

eingebunden. n steht für dabei für den Namen des Stylesheets.

Mit CSS Level 2 gibt es einige Tags, die extra für den Ausdruck zum Einsatz kommen. Auf SELFHTML findet man die gesamte Liste. Man beachte aber, dass die meisten der Angaben bis dato nur von Opera unterstützt werden. In Zukunft wird sich das hoffentlich ändern. Jetzt kann man aber im Druck – Stylesheet schon mit der Anweisung #div {display:none} gesamte Divs aus dem Seitenfluß herausnehmen und ausblenden. Das empfiehlt sich z. B. für farbige Elemente, wie bildlastige Seitenleisten etc., die nicht ausgedruckt werden sollen.
Mehr zur Technik findet man in diesem sehr gut geschriebenen Artikel von Gerrit Kaiser.

Wenn man nun noch ein kleines Icon für die Druckversion einbauen und verlinken möchte, greift man auf das bischen Javascript zurück und schwuppdiwupp wird der Drucker aufgerufen:
<a href="#" onClick="javascript:print(this.document)">Druck-Icon</a>

Will man allerdings ein neues Fenster im Browser öffnen, indem die Druckversion angezeigt wird, dann geht man folgendermaßen vor:

  1. man erstellt in TXP ein Stylesheet und nennt es print
  2. man hängt an die Artikel einen Link an, der so aussehen muß: <a href="?print=1" target="blank">Druckversion</a>. Statt dem Wort Druckversion kann man auch ein gif einbauen.
  3. man fügt in den headbereich der Seitenvorlagen den folgenden PHP Code ein:
    <?php $style = "<txp:css />";
    if (isset($_GET['print']) && $_GET['print'] == '1') {
    $style="/pfad/zu/textpattern/css.php?n=print";}
    echo "<link rel=\"stylesheet\" href=\"$style\" type=\"text/css\" media=\"all\" />\n
    <link rel=\"stylesheet\" href=\"/pfad/zu/textpattern/css.php?n=print\" type=\"text/css\" media=\"print\" />\n"; ?>

  4. Alternativ kann man auch diesen sauberen Code einsetzen: <txp:php>$style = '<txp:css />'; if (gps('print') == 1) $style = '<txp:css n="print" />'; echo ('<link rel="stylesheet" href="' . $style . '" type="text/css" media="all" />' . "\n"); echo ('<link rel="stylesheet" href="<txp:css n="print" />" type="text/css" media="print" />'); </txp:php>

Das wäre schon alles. Eine Beispielseite auf der diese Art der Druckversion praktiziert wird ist talyst.com. Ziemlich elegante Lösung.

Anmerkung
Bitte beachtet, dass das Attribut blank korrekt mit Unterstrich vorneweg geschrieben wird (siehe SELFHTML). Da Textile den Unterstrich hier im Blog als em interpretiert, konnte ich das nicht korrekt angeben.

 
Filed:
CSS Tips
| 24.11.05

Neue TXP Sites

    Unable to connect to del.icio.us