Ich erstelle einen HTML-Bericht, der druckbar sein wird und "Abschnitte" enthält, die auf einer neuen Seite beginnen sollen.
Gibt es eine Möglichkeit, etwas in das HTML / CSS einzufügen, das dem Browser signalisiert, dass er zu diesem Zeitpunkt einen Seitenumbruch erzwingen (eine neue Seite starten) muss?
Ich brauche das nicht, um in jedem Browser da draußen zu funktionieren. Ich denke, ich kann den Leuten sagen, dass sie einen bestimmten Satz von Browsern verwenden sollen, um dies zu drucken.
quelle
page-break-after
"für Blockelemente, die eine Box generieren", sodass die Verwendung eines leeren<span>
Elements nicht funktioniert. Es ist eine bessere Idee, es auf einen Teil Ihres Inhalts anzuwenden. Siehe developer.mozilla.org/en-US/docs/Web/CSS/page-break-after.pagebreak { min-height: 1px; page-break-before: always; }
Versuchen Sie, diese Verbindung
quelle
h1
ist kein gutes Beispiel, da es eine Überschrift der ersten Ebene bedeutet und eine Seite normalerweise nur eine solche Überschrift haben sollte.h1:not(:first-child) { page-break-before:always; }
Ich wollte nur ein Update setzen.
page-break-after
ist jetzt ein Vermächtnis.Offizielle Seite Staaten
quelle
Sie können die CSS-Eigenschaft
page-break-before
(oderpage-break-after
) verwenden. Stellen Sie einfachpage-break-before: always
auf diesen Block-Elemente (zB Position,div
,p
, odertable
Elemente) , die auf einer neuen Zeile beginnen soll.Um beispielsweise einen Zeilenumbruch vor einer Überschrift der 2. Ebene und vor einem Element in der Klasse
newpage
(z. B.<div class=newpage>
...) zu verursachen, würden Sie verwendenquelle
Fügen Sie dies einfach dort hinzu, wo Sie die Seite benötigen, um zur nächsten zu gelangen (der Text "Seite 1" befindet sich auf Seite 1 und der Text "Seite 2" befindet sich auf der zweiten Seite).
Das funktioniert auch:
quelle
Angenommen, Sie haben einen Blog mit Artikeln wie diesen:
Das Hinzufügen zum CSS hat für mich funktioniert:
(getestet und funktioniert unter Chrome 69 und Firefox 62).
Referenz:
https://www.w3schools.com/cssref/pr_print_pageba.asp
https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-after ; Wichtiger Hinweis: Hier heißt es,
This property has been replaced by the break-after property.
aber es hat bei mir nicht funktioniertbreak-after
. Auch das MDN-Dokument überbreak-after
scheint nicht spezifisch für Seitenumbrüche zu sein, daher ziehe ich es vor, das (funktionsfähig) beizubehaltenpage-break-after: always;
.quelle
Beispiel:
Beim Drucken der HTML-Datei mit dem obigen Code werden in der Druckvorschau drei Seiten angezeigt (eine für jeden HTML-Block " HTML_BLOCK_n "), wobei wie im Browser alle drei Blöcke nacheinander angezeigt werden.
quelle
Ich brauchte nach jeder dritten Zeile einen Seitenumbruch, während wir den Druckbefehl im Browser verwenden.
Ich habe <div style = 'page-break-before: always;'> </ div> hinzugefügt
nach jeder 3. Reihe und meinem Eltern-Div haben Anzeige: flex; also habe ich display entfernt: flex; und es funktionierte wie ich will.
quelle
CSS
HTML
quelle
@ Chris Doggett macht vollkommen Sinn. Obwohl ich auf lvsys.com einen lustigen Trick gefunden habe , der tatsächlich auf Firefox und Chrome funktioniert. Platzieren Sie diesen Kommentar einfach an einer beliebigen Stelle, an der der Seitenumbruch eingefügt werden soll. Sie können das
<p>
Tag auch durch ein beliebiges Blockelement ersetzen .quelle