Hallo,
Seit der aktuellen Version von Firefox und aufwärts in die Beta kann ich meine Seite homepage-sk nicht mehr korrekt ausdrucken, bzw. Firefoxdruckt nur die erste Seite und schneidet den Rest, der nicht drauf passt ab, statt auf den weiteren Seiten fortzufahrne. Kann man dieses Problem umgehen? Bzw. habe ich etwas falsch gemacht mit dem Design?
Du könntest vor allem ein alternatives CSS zum Drucken
anbieten, der nur schwarze Schrift auf weißem Grund verwendet
und Inhalte nicht weiter anordnet.
Beim firefox kann der Nutzer natürlich auch als ersten Versuch
einfach das CSS deaktivieren, um eine Darstellung zu bekommen,
die zum Drucken viel besser geeignet ist als die Version für
den Monitor.
Beim speziellen Druckstil kann man das dort nicht sinnvolle
Menü natürlich ausblenden, dafür URIs von sinnvollen Verweisen
explizit darstellen lassen.
Interessant übrigens: Schaltet man das CSS ab, so findet man
einen Verweis auf eine ‘Druckversion’ (zwischen Wald und
Gästebuch, wobei unklar bleibt, was ‘Wald’ mit dem Rest der
Seite zu tun hat ;o) - klickert man den Verweis an, kommt man
auf eine 404-Seite ;o)
Ja, die Druckversion bin ich am überarbeiten - eigentlich möchte ich diese getrennt vom eigentlichen Dokument und deshalb auch, dass man die Seite so ausdrucken kann, wie sie auf dem Bildschirm erscheint. Nur wird die Seite abgeschnitten. Lässt sich das umgehen?
In der Vorschau von Opera und dem firefox 3.5 sehe ich eher, daß
vor allem der rechte Rand der Seite abgetrennt wird. Das wird
wohl an festen Breitenangaben im CSS liegen. Horizontal
schreddert firefox wohl auch - habe da aber keine relevante
Angabe zur Höhe gesehen, bei kurzem Blick auf das CSS.
Mag abgesehen davon, daß overflow-y kein CSS2 ist, kann ein
Drucker solch eine Angabe natürlich nicht realisieren, gehört
also nicht in eine Stilvorlage, die zum Drucken bestimmt ist.
Vielleicht irritiert das den firefox ja und der nimmt dies ernst.
Du könntest solche Angaben also auf einen bestimmten
Medientyp im CSS einschränken - wie gesagt eben, verschiedene
Stilvorlagen verwenden, dann brauchst du auch kein anderes
(X)HTML-Dokument für den Druck.
Breitenangaben in Pixeln läßt du natürlich am besten komplett
weg, im Druckstil allgemein, weil du ja nicht wissen kannst, was
für ein Papier im Drucker liegt.
Dann kannst du natürlich auch systematisch vorgehen und
verdächtige Eigenschaften in einem Testdokument streichen
und gucken, wie sich das auf die Druckvorschau auswirkt, so
kannst du langsam einkreisen, woran es liegt.
Kannst natürlich auch mal ein Dokument ganz ohne CSS
ausprobieren, nur um sicherzustellen, daß der firefox nicht alles
schreddert, was nicht auf eine Seite paßt.
Ergänzung: ich sehe gerade, der firefox scheint zumindest ein
Problem zu haben, die Deaktivierung der Stilvorlage
beizubehalten, wenn man auf die Druckvorschau umschaltet,
das sieht mir nach einem groben Fehler vom firefox aus, bei
Opera gibt es da keine Probleme, da kann man als Nutzer auch
einen eigenen Stil verwenden oder gar keinen.
Hab jetzt mal das overflow-y:scroll; entfernt - es lag tatsächlich an dem. Gibt es denn keine andere Möglichkeit das gleiche zu bewirken? Nur, dass es das Dokument nicht abschneidet?
Wie gesagt, die Druckversion möchte ich eigentlich getrennt - auch erreiche ich ja nicht 800px breite ohne der Angabe width:800px; - also gibt es einen alternativen Code zu overflow-y:scroll;?
Was willst du mit der Angabe überhaupt erreichen?
Da der entsprechende CSS3-Entwurf auch noch nicht in einem
hinreichenden Stadium ist, kann man von der Eigenschaft
ohnehin nicht in allen browsern eine Reaktion erwarten.
Ich habe da jetzt auch keine Seite mit so wenig Inhalt gefunden,
daß ich nicht ohnehin hätte rollen müssen, also kann ich nicht
nachvollziehen, was passiert, wenn man es nicht müßte ;o)
In erster Näherung sieht es mir jedenfalls überflüssig aus.
Und wie bereits erwähnt, wenn es überhaupt einen Zweck
erfüllt (welchen?), dann reicht es ja, wenn man es für das
Medium Monitor angibt, wenn es dafür gedacht ist, jedenfalls
dann wohl eher nicht für den Drucker.
Innerhalb von CSS2 hat sich bislang gezeigt, daß man so eine
Eigenschaft wie overflow-y nicht wirklich braucht, wenn man
alles ordentlich anordnet. Die Voreinstellung für overflow
bewirkt ja schon, daß dann ein Rollbalken in der Richtung
angebracht wird, in der er gebraucht wird. Warum man jetzt
immer einen in vertikaler Richtung haben will, tja …
Daher findet der Wert scroll bereits bei overflow wenig
Anwendung. Mag auch sein, daß der deswegen erst recht nicht
ordentlich bei overflow-y getestet ist. Man sollte ja auch meinen,
daß die bei Mozilla was wichtigeres zu tun haben, als sowas
aus einem CSS3-Arbeitsentwurf zu implementieren ;o)
Daß die Druckerausgabe allerdings bei jedem browser praktisch
unlesbar ist, weil sie horizontal nicht aufs Papier paßt, weil da
irgendwo eine Breitenangabe in px drinsteht, scheint mir da
jedenfalls weit bedenklicher zu sein als eine überflüssige
Eigenschaft, die firefox dann offenbar auch noch so interpretiert,
daß auch die vertikalen Anzeige geschreddert wird. Da man
nichts lesen kann, ist das dann ja eher ein Gewinn für den, der
das dann vergeblich ausgedruckt hat - wird immerhin eine
Seite unlesbarer Müll weniger gedruckt ;o)
Wenn jemand ein Papier der Breite 21cm hat, warum sollte
da dann eine Breitenangabe von 800px irgendwie relevant sein?
Liegen nur 15cm vor, wird dann noch weniger gedruckt. Warum
sollte jemand das ausdrucken wollen?
Von welchem overflow-y ist denn hier eigentlich die Rede?
Ich kann beim Drüberschauen mit Firebug in einer aktuellen FF-Version gerade nicht erkennen, welches Element überhaupt damit formatiert sein soll.
der body war damit formatiert - da es aber Probleme gab, hab ich ihn entfernt. Allerdings möchte ich trotzdem, das vertikale Scrollbalken immer eingeblendet wird, auch wenn er eigentlich nicht nötig wäre.
Und was an dem Problem lässt sich bitte nicht lösen, wenn du hoffmanns Ratschlag beherzigst, und diese Formatierung nur für Medientypen angibst, in denen sie sinnvoll ist?
ich möchte, dass die Scrollbar immer angezeigt wird, aber man die Seite trotzdem so wie man Sie sieht ausdrucken kann - die Druckversion werde ich dann von dieser trennen. - Das funktioniert so scheinbar nicht.
Wie stellst du dir das denn vor, daß die Leute deine Seite auf
Klopapier ausdrucken sollen (weil das eine Rolle hat, auf die
vielleicht overflow:scroll anwendbar wäre)?
Früher gab es in der Tät häufig Literatur auf Schriftrollen.
Die Tora wird heute wohl immer noch so verwendet.
Dann gab es auch mal eine zeitlang Drucker mit ‘Endlospapier’,
sind aber etwas aus der Mode gekommen, schon die waren aber
letztlich zu Bögen gefaltet und nicht gerollt.
Heute bekommt man bei elektronischen Formaten noch
A0- oder A1-Poster gerollt, wenn man sowas drucken läßt.
Auch das hat aber keine Rollbalken oder Funktionalitäten wie
etwa Schriftrollen, mit denen man was rollen könnte.
Insofern sind Drucker für Computer nicht dahingehend
ausgestattet, daß sie overflow: scroll sinnvoll umsetzen könnten,
selbst wenn du es angibst. Eine Rollfunktion für auf Papier
gedruckte Texte ist (noch) zu kompliziert, um sie mit gängigen
Druckern (Laser oder Tintenstrahl) zu realisieren. Es gibt
allerdings 3D-Drucker, mit denen man das hinbekommen könnte ;o)