Druckversion
Florian
- css
Schönen guten Abend zusammen,
ich bin gerade dabei, mir ein Drucklayout mit CSS zu erstellen. Dazu habe ich 2 Fragen:
Frage 1:
Wenn ich über das Browser Menü drucke, erscheint im Druck (bei den meisten Browsern?) ganz oben der Quelllink und ein Titel des gedruckten Textes.
Kann mir von Euch jemand sagen, ob und - wenn ja - wie man mit CSS diese Zeile bearbeiten kann?
Frage 2:
Kann ich mit CSS einen Bereich angeben der automatisch auf jeder gedruckte Seite erscheint. Beispielsweise sollte, wenn ich innerhalb eines p-Containers 3 gedruckte Seiten Text habe, auf jeder der Seiten oben ein Logo o.ä. erscheinen.
Vielen Dank, Florian
Hallo,
Frage 1:
Wenn ich über das Browser Menü drucke, erscheint im Druck (bei den meisten »»Browsern?) ganz oben der Quelllink und ein Titel des gedruckten Textes.
Kann mir von Euch jemand sagen, ob und - wenn ja - wie man mit CSS diese »»Zeile bearbeiten kann?
liegt nicht im Zugriffsbereich von CSS
Schneider
Moin!
Frage 1:
Wenn ich über das Browser Menü drucke, erscheint im Druck (bei den meisten Browsern?) ganz oben der Quelllink und ein Titel des gedruckten Textes.
Kann mir von Euch jemand sagen, ob und - wenn ja - wie man mit CSS diese Zeile bearbeiten kann?
Kann man nicht bearbeiten. Diese Zeile wird außerhalb des von CSS beeinflussbaren Bereichs durch die Browsereinstellungen im Druck-Dialog erzeugt.
Das hat durchaus seine Berechtigung, denn der Benutzer will sich vielleicht darauf verlassen, diese Angaben auf jedem Ausdruck zu sehen, und nicht abhängig sein von irgendeinem Druckstylesheet, in dem diese Angaben wegformatiert, versteckt oder verfälscht werden.
Frage 2:
Kann ich mit CSS einen Bereich angeben der automatisch auf jeder gedruckte Seite erscheint. Beispielsweise sollte, wenn ich innerhalb eines p-Containers 3 gedruckte Seiten Text habe, auf jeder der Seiten oben ein Logo o.ä. erscheinen.
Sowas ist in CSS leider nicht vorgesehen. Generell muss man sagen, dass die Unterstützung von CSS-Druckeigenschaften in den Browsern derzeit eher immer noch mangelhaft ist. Wenn du dir die SELFHTML-Seite zu http://de.selfhtml.org/css/eigenschaften/printlayouts.htm@title=CSS-Druckeigenschaften mal ansiehst, dann wird dir schnell klar: Da sind kaum Browser-Icons zu sehen, nur Opera taucht häufiger auf. Und oftmals steht im Text "Wegen mangelnder Browserunterstützung wird diese Eigenschaft jedoch in CSS 2.1 nicht übernommen werden."
Mit CSS 3 soll vieles anders und besser werden. Aber erstens ist CSS 3 noch nicht mal fertig standardisiert, und zweitens wird es danach dann noch mal deutlich länger dauern, bis es dann auch in den Browsern zufriedenstellend unterstützt wird.
Drucklayouts mit CSS sind eine tolle Sache - aber leider nur, wenn man keine zu hohen Ansprüche an das Layout hat.
- Sven Rautenberg
Das klingt alles einleuchtend. Vielend Dank für die Antworten.
Dann hab ich noch, wenn es erlaubt ist, eine weitere Frage:
Ich habe ein Seitenlayout aufgebaut in Form von
<div id="content">
<!--hier kommen Artikel 03,04,05 ..... hin-->
<h1 ID="Artikel02">Artikel 02</h!>
<p>
Absatz 1 von Artikel_02
</p>
<p>
Absatz 2 von Artikel_02
</p>
<p>
Absatz 3 von Artikel_02
</p>
<h1 ID="Artikel01">Artikel 01</h1>
<p>
Absatz 1 von Artikel_01
</p>
<p>
Absatz 2 von Artikel_01
</p>
<p>
Absatz 3 von Artikel_01
</p>
</div>
Es stehen also auf einer Seite eine unbekannte Anzahl von Artikeln, auf deren Seite. Nun möchte ich einen Druckbutton anlegen, der dem User erlaubt den einzelnen Artikel, also nicht die ganze Seite auszudrucken.
Kann ich die jeweilige id ansprechen und sagen "bis zur nächsten id drucken"? Oder mache ich um jeden Container noch ein <p id="xy"> und kann dann sagen diesen Bereich drucken?
Oder bin ich total auf dem Holzweg ......
Danke für Eure Hilfe.
Gruß Florian
Moin!
Es stehen also auf einer Seite eine unbekannte Anzahl von Artikeln, auf deren Seite. Nun möchte ich einen Druckbutton anlegen, der dem User erlaubt den einzelnen Artikel, also nicht die ganze Seite auszudrucken.
Das wird schwierig. Ohne Javascript funktioniert es sowieso nicht, denn so kriegst du den Druck-Button ja nicht in Funktion.
Kann ich die jeweilige id ansprechen und sagen "bis zur nächsten id drucken"?
Nein.
Oder mache ich um jeden Container noch ein <p id="xy"> und kann dann sagen diesen Bereich drucken?
Ein <p> ist verboten, da in <p> kein weiteres <p> erlaubt ist, aber <div> würde funktionieren.
Wenn das dynamisch passieren soll, würde ich vor dem Start des Druckvorgangs dynamisch dem jeweiligen DIV oder allen anderen DIVs eine CSS-Klasse zuweisen, welche im Druck-Stylesheet den Ausdruck unerwünschter Artikel verhindert, bzw. den jeweiligen Artikel isoliert ausdruckt.
Nicht empfehlenswert ist, das Element direkt mit ...style.display="none" auszublenden, denn das wirkt auf alle Ausgabemedien, auch auf die Bildschirmausgabe, und lässt sich mit der Gegenfunktion ...style.display="block" nicht so wiederherstellen, dass dann erneut die originalen CSS-Regeln der einzelnen Mediendateien wirken.
- Sven Rautenberg