page-break mit divs klappt nicht?!
Herwig
- css
hallo,
ich würde gerne folgendes realisieren: mehrere divs mit fixer höhe untereinander, im print-css sollen die divs so umbrechen, dass wirklich immer daer ganze div auf der nächsten seite anfängt, und nichts in der mitte zerschnitten wird. ich hab schon mit den page-break-before und page-break-after herumgespielt, aber irgendwie klappts nicht so richtig.
beispielcode hier:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>page-break-before</title>
</head><body>
<div style="page-break-after:auto;height:260px;background-color:#33FF66">test</div>
<div style="page-break-after:auto;height:260px;background-color:#33FF66">test</div>
<div style="page-break-after:auto;height:260px;background-color:#33FF66">test</div>
<div style="page-break-after:auto;height:260px;background-color:#33FF66">test</div>
</body>
</html>
danke für eure hilfe!
Hallo,
ich würde gerne folgendes realisieren: mehrere divs mit fixer höhe untereinander, im print-css sollen die divs so umbrechen, dass wirklich immer daer ganze div auf der nächsten seite anfängt, und nichts in der mitte zerschnitten wird.
Damit ein DIV zwingend auf einer neuen Seite anfängt, gibt es:
page-break-before:always
Damit etwas nicht mittendrin zerschnitten wird, gäbe es
page-break-inside:avoid
Wird aber leider gemäss
http://reference.sitepoint.com/css/page-break-inside
nur von Opera 9.2 unterstützt, nicht aber von Firefox 2 oder MS IE 7.
<div style="page-break-after:auto;height:260px;background-color:#33FF66">test</div>
page-break-after:auto ist eh der Standardwert, bringt also vermutlich nichts.
Wenn schon, müsstest Du einen Seitenumbruch erzwingen, z.B. wie gesagt mit
page-break-before:always
Das sollte gemäss
http://reference.sitepoint.com/css/page-break-before#compatibilitysection (Abschnitt Compatibility)
in Firefox 2, MS IE 7 und Opera 9.2 funktionieren
Allgemeine Lektüre zum Thema:
http://de.selfhtml.org/css/eigenschaften/printlayouts.htm
HTH, mfg
Thomas
P.S. Wenn Du eine Hintergrundfarbe definierst, solltest Du
im gleichen Atemzug auch eine Vordergrundfarbe definieren.
Sonst gibt der CSS-Validator eine Warnung aus (zumindest
bei zentralen Stylesheets - ob er mittlerweile STYLE-Attribute
auch untersucht, ist mir nicht bekannt).
Grund: Es könnte zu schlechten Kombinationen von Schrift-
und Hintergrundfarbe kommen, wenn z.B. für BODY eine bestimmte
Schriftfarbe und Hintergrundfarbe definiert ist, und Du später
für einen DIV nur die Hintergrundfarbe definierst.
Hallo,
Wenn schon, müsstest Du einen Seitenumbruch erzwingen, z.B. wie gesagt mit
page-break-before:always
ist klar, ich vergaß zu erwähnen, dass ich auch das schon probiert habe. mein problem ist folgendes: da die inhalte aus einer datenbank kommen, würde ich gerne stellen definieren, wo umgebrochen werden soll, aber nur FALLS notwendig. mit page-break-before:always wird ja dann immer umgebrochen.
und die kombination mit page-break-before:avoid wird ja kaum unterstützt, wie du selbst bemerkt hast..
also meine frage mal anders formuliert: wie kann man ein anständiges printlayout für datenbankgestützte ausgaben erzeugen???
P.S. Wenn Du eine Hintergrundfarbe definierst, solltest Du
im gleichen Atemzug auch eine Vordergrundfarbe definieren.
is klar, war nur zum testen in meinem eigenen browser;-)
danke!
h
Hi,
also meine frage mal anders formuliert: wie kann man ein anständiges printlayout für datenbankgestützte ausgaben erzeugen???
In dem man eine Technik nutzt, die einem diesbezueglich mehr Kontrolle gibt, wie bspw. PDF.
MfG ChrisB
Hi,
In dem man eine Technik nutzt, die einem diesbezueglich mehr Kontrolle gibt, wie bspw. PDF.
auch klar, aber ich wollts halt in der html-ausgabe haben.
eine möglichkeit ist natürlich, im script ein html-element alle x-mal erscheinen zu lassen, dem dann per css der umbruchbefehl zugeordnet wird. der haken: man weiss natürlich nie genau über die seiteneinstellungen der user bescheid, und wenn man zu sehr auf nummer sicher macht, bleibt viel leerraum am papier:-(
gibts doch irgendeine lösung??
Hi,
auch klar, aber ich wollts halt in der html-ausgabe haben.
geht wie gesagt nicht!
eine möglichkeit ist natürlich, im script ein html-element alle x-mal erscheinen zu lassen, dem dann per css der umbruchbefehl zugeordnet wird. der haken: man weiss natürlich nie genau über die seiteneinstellungen der user bescheid
das brauchst Du auch gar nicht, da Du beim print-CSS von DIN-a-4 ausgehen kannst und lediglich die Seitenrand-Enstellungen ud ggfls. Kopf- und Fußzeilen-Einstellungen nicht kennst.
Viel wichtiger dürften die Inhalte der einzelnen Bereiche sein - es sei denn, die wären alle von etwa gleicher Länge.
Ich habe das z.B. in http://td-duesseldorf-rot-weiss.de/terminkalender/ so gelöst, dass ich die Inhalte analysiere und auch noch etwas Freiraum einkalkuliere. Klappt nicht immer und vor allem bei sehr großen Randeinstellungen nicht gut.
freundliche Grüße
Ingo
das brauchst Du auch gar nicht, da Du beim print-CSS von DIN-a-4 ausgehen kannst und lediglich die Seitenrand-Enstellungen ud ggfls. Kopf- und Fußzeilen-Einstellungen nicht kennst.
hi ingo,
ja, genau das ist das problem, man siehts auch an deinem beispiel: bei mir bleibt immer ein ordentliches stück auf der seite leer, zu erkennen daran, dass man in diesem bereich die hintergrundgrafik ausgedruckt bekommet, aber keinen tabelleninhalt, obwohl locker noch 2-3 zeilen platz haben. soll jetzt keine kritik sein- du hast das fabelhaft umgesetzt- aber genau das war ja meine frage- ob es eine möglichkeit gibt, das ganze so zu gestalten, dass dort umgebrochen wird, wo es wirklich benötigt wird und erlaubt wird. scheint aber nur mit dieser "vorausschätzungstechnik" zu gehen:-(
danke auf jeden fall für die hilfe...
Hi,
zu erkennen daran, dass man in diesem bereich die hintergrundgrafik ausgedruckt bekommet
Du lässt tatsächlich Hintergrund ausdrucken?
ob es eine möglichkeit gibt, das ganze so zu gestalten, dass dort umgebrochen wird, wo es wirklich benötigt wird und erlaubt wird. scheint aber nur mit dieser "vorausschätzungstechnik" zu gehen:-(
so ist es - allenfalls für den Opera könntest Du das wie schon gesagt erreichen.
freundliche Grüße
Ingo
hi
Du lässt tatsächlich Hintergrund ausdrucken?
nö, aber man sieht dann, wie weit man drucken KÖNNTE...
so ist es - allenfalls für den Opera könntest Du das wie schon gesagt erreichen.
hab ich befürchtet...
ciao
h