Herwig: page-break mit divs klappt nicht?!

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!

  1. 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.

    1. 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

      1. 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

        --
        "The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."
        1. 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??

          1. 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

            1. 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...

              1. 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

                1. 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