Firefox: Vermeiden Sie das Teilen von Bildern und Textzeilen beim Drucken

8457
kpozin

Beim Drucken von Firefox (bei einem beliebigen Betriebssystem, glaube ich), teilt der Browser Bilder und manchmal sogar Textzeilen in Seitenumbrüche auf. Der obere Teil eines Bildes wird oben auf Seite n angezeigt, der Rest oben von Seite n + 1.

Gibt es eine Möglichkeit, Firefox dazu zu bringen, Bilder während des Druckens auf einzelnen Seiten zu behalten?

7

2 Antworten auf die Frage

5
Ivo Flipse

Von CSS Diskutieren Sie Incutio

TLDR: Seitenumbrüche werden von Browsern schlecht unterstützt (wahrscheinlich mit gutem Grund), daher liegt es meist am Seiten-Designer, sich damit auseinanderzusetzen. Für den Rest können Sie wenig tun, außer vielleicht das Kopieren in ein Dokument. Und C-Net stimmt zu.

Seitenumbrüche

Da die "Druckränder" als Webautor nicht unter Ihrer Kontrolle stehen, können Sie nicht garantieren, wie viel von einem Webdokument auf jeder Seite gedruckt wird und wo sich die Seitenumbrüche befinden. Sie variiert je nach Browser, Browsereinstellungen und Drucker des Benutzers. Auch die Basisschriftgröße und die Briefpapiergröße des Benutzers liegen außerhalb Ihrer Kontrolle. Sie sollten CSS verwenden, um die Position von Seitenumbrüchen zu beeinflussen (nicht zu steuern). CSS2.1 Kapitel 13 Paged Media ist eine wichtige Lektüre. Beachten Sie, dass CSS2.1 in diesem Kapitel einige Funktionen in CSS2 verwirft, die Browser niemals implementiert haben.

Die Unterstützung für die Seitenumbrücheigenschaften (z. B. Seitenumbruch innen) ist selbst in den neuesten Browsern schlecht. Die Hauptausnahme ist Opera (ab Opera 5), ​​dessen Unterstützung sehr gut ist:

Schlimmer noch: Browser neigen dazu, Seiten an eindeutig inakzeptablen Stellen aufzubrechen (siehe auch den nächsten Absatz). Ich habe zum Beispiel Fälle gefunden, in denen Browser ein Bild auf mehreren Seiten zerstören. Tests auf meinen verschiedenen Websites deuten darauf hin, dass die Seitenumbrüche von Opera zwar nicht perfekt sind, jedoch deutlich robuster als die von Firefox oder IE.

Erics Artikel (siehe unten) erwähnt einen Fehler in Gecko (Mozilla) basierten Browsern bezüglich des Druckens von Float-Elementen. Dieser Fehler ist offenbar noch nicht behoben worden [im Juli 2009], dass schwebende Elemente am Ende der gedruckten Seite und manchmal nur auf einer Seite eines Dokuments, das gedruckt wird, abgeschnitten werden [Anmerkung 2]. Ich habe bei älteren Opera-Versionen (z. B. O7.21) ein ähnliches Problem beim Float-Chopping gefunden. In IE wurde ein anderer Fehler gemeldet. Wenn die Spitze eines Floated-Elements zufällig mit einem Seitenumbruch übereinstimmt, wird das Floated-Element überhaupt nicht gedruckt [Bestätigung: Rennan Rieke].

Vorgeschlagene Strategie für Seitenumbrüche

Die beste Richtlinie (sicherlich bis die Browser sich verbessern) besteht darin, ihnen eine Pause zu geben (ha!), Indem sie ihnen so viel Diskretion wie möglich bei der Wahl ihrer Haltepunkte einräumen. Sie haben besondere Probleme mit Side-by-Side-Elementen, z <div>. schwimmt; und Tabellen mit zwei oder mehr Spalten. Geeignete Strategien umfassen daher das Positionieren von Positionen <div>statisch; schwimmende Schwimmkörper; Tabellen, die für das Layout verwendet werden, in kürzere Tabellen aufteilen [Anmerkung 1]. Auch wenn die Seitenumbrücheigenschaften schlecht unterstützt werden, beschränken Sie die Browser nicht zu stark: Verwenden Sie den Wert "Vermeiden" so leicht wie möglich.

Browser mögen Floats beim Drucken wirklich nicht (siehe vorheriger Abschnitt). Die Problemumgehung besteht darin, schwebende Elemente (Float: none und vielleicht width: auto auch) nicht zu schweben. Wenn Sie beim Drucken ein schwebendes Element riskieren, wird möglicherweise über einen Seitenumbruch gedruckt (der Anfang eines schwebenden Elements ist in der aktuellen Zeile verankert). Abhängig von der Art des schwebenden Materials kann dies ein akzeptables Verhalten sein. Wenn nicht, können Sie nur mit Opera eine solche Aufteilung unterdrücken.

Wenn nur auf einer Seite Inhalte gedruckt werden müssen, z. B. in einem Formular, besteht die beste Chance darin, die Anzahl der Seiten deutlich zu verringern, so dass Sie einen guten Fehler (sic) haben. In Bezug auf das Briefpapierformat können Sie das internationale (ISO) A4-Format (für ein internationales Publikum) oder das US-Letter-Format (für ein ausschließlich US-amerikanisches Publikum) annehmen, obwohl es keine Garantie dafür gibt, welche Größe Benutzer verwenden. Fragen Sie sich jedoch, wie Sie reagieren würden, wenn Sie ein einseitiges Formular mit einem Textverarbeitungsprogramm erstellt hätten und ein sehbehinderter Benutzer nach einer Version mit großem Druck gefragt hätte. Wie immer bei Webdesign und CSS wird das Leben viel einfacher, wenn Sie nicht versuchen, mit dem Benutzer zu kämpfen, indem Sie auf Pixel-Perfektion oder garantierten Seitenumbrüchen bestehen. Das fließende Design gilt sowohl für Papier als auch für Bildschirm.

Obwohl dies sehr alt ist (2003), ist der Fehler offenbar immer noch nicht behoben Ivo Flipse vor 14 Jahren 0
2
royalt213

Dieses Problem hat mich schon lange gestört. Wenn Sie mit der rechten Maustaste auf die Seite klicken, gehen Sie zu "Inspect Element" und dann zu "Style Editor" im Inspektionsfenster.

p { page-break-inside: avoid; } 

Das wird es normalerweise tun. Ich habe einige Leute gesehen, die vorschlugen, diesen Stil in das 'img'-Tag einzufügen, aber das hat auf keiner der Seiten, auf denen ich es versucht habe, funktioniert.

Dieses Tag ist auch praktisch, wenn Sie die Hauptelemente einer Seite trennen möchten. Wenn ich zum Beispiel Sachen aus EBSCOhost drucke, werden diese Zitate auf einer Seite platziert, der Text auf den eigenen Seiten und die Bilder auf den eigenen Seiten. Es ist ein wirklich praktischer Stil.

Es ist schön, dass (zumindest für ein Blockbild) das `img`-Tag in ein` p` eingeschlossen werden kann, und dies funktioniert weiterhin. Ronan Paixão vor 5 Jahren 0