Welche Browser unterstützen Seitenumbruch manipulation mit Hilfe von CSS und die page-break-inside element?
Ich versuche, verwenden Sie die page-break-inside CSS-Richtlinie, die Klasse, die angebracht werden, um einen div-tag oder ein tag Tabelle (ich denke, dies kann nur auf block-Elemente, in dem Fall wäre das die Tabelle).
Ich habe versucht, alle, die tutorials, die angeblich beschreiben, wie Sie das genau machen, aber nichts funktioniert. Ist das ein Problem von browser-Unterstützung oder hat das jemand geschafft, diese arbeiten, die genauen bisschen CSS sieht wie folgt aus:
@media print {
.noPageBreak {
page-break-inside : avoid;
}
}
InformationsquelleAutor user20762 | 2008-09-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Safari 1.3 und höher (weiß nicht 4) nicht support page-break-inside (probieren Sie es aus, oder siehe hier: http://reference.sitepoint.com/css/page-break-inside). Weder Firefox 3 und IE7 (weiß nicht, über 8).
Im praktischen Sinne, die Unterstützung für dieses Attribut ist SO fleckig, es macht keinen Sinn, es überhaupt zu verwenden an dieser Stelle. Sie würde froh sein, wenn sogar 10% der Besucher haben auch Browser, die diese unterstützen kann.
Die Lösung, die ich verwendet war hinzufügen
page-break-after:always
bestimmten divs, oder fügen Sie eine "Seite-breaker" div, wo Sie wollen bricht. Das ist ganz ham-handed, ich weiß es, weil es nicht ganz das, was Sie wollen, und Ursachen, Inhalt, nicht auf den unteren Rand der gedruckten Seite, aber leider gibt es nicht eine bessere Lösung (beweisen, mich nicht falsch!).
Ein weiterer Ansatz ist das erstellen eines stylesheet, entfernt alle störenden Elemente (
display:none
) und bewirkt, dass die wichtigsten Inhalte fließen in einer Haupt-Spalte. Im Grunde verwandeln Sie es in eine einzelne Spalte, nur-text-Dokument.Schließlich vermeiden schwimmt und Spalten beim styling für Drucker, kann es im IE (und FF) handeln abgedreht.
InformationsquelleAutor sequoia mcdowell
Safari 1.3+, Opera 9.2+, Konquerer, und IE8 alle Unterstützung, die es, zumindest bis zu einem gewissen Grad.
Firefox anscheinend immer noch nicht.
InformationsquelleAutor phloopy
InformationsquelleAutor Eamon Nerbonne
Safari 1.3 und höher unterstützen
page-break-inside
.So funktioniert Konqueror.
InformationsquelleAutor Jim
Erstens, es gibt keine Notwendigkeit zu erraten. Schauen Sie sich nur die Spezifikation, und Sie werden sehen, dass es in der Tat nur für block-level-Elemente.
Zweitens
<div>
Elemente sind in der Regel block-level-Elemente, so gibt es keine problem bei der Anwendungpage-break-inside
zu einem<div>
element.Schließlich müssen Sie nicht wickeln Sie es in
@media
. Sie müssen nur@media
wenn Sie sich bewerben möchten Medien-unabhängige Regeln auf nur ein medium, zum Beispiel, wenn Sie verwenden möchtendisplay: block
nur für ein medium. In diesem Fall brauchen Sie nicht zu verstecken, diese Regeln von anderen Medien, weil Sie gelten nur für die ausgelagerten Medien sowieso.InformationsquelleAutor Jim
Vom vorläufigen sucht, es ist schwer zu finden up-to-date Statistiken über browser-Unterstützung für diese, aber es scheint, dass Firefox 4beta6 unterstützt und Chrome 7 nicht. Chrome bricht auch Seiten, auf halbem Weg durch eine Zeile text, so dass ein Teil des Texts auf einer Seite und ein Teil wird auf die nächste. Uncharakteristischen Mangel an Aufmerksamkeit zum detail, aber ich glaube weder Google noch Apple care über den Druck die Dinge.
Firefox 4 fügt auch ein paar nette Kopf-und Fußzeilen zu Ihrer Ausdrucke mit der url, Seite Titel, Titel der Website, Anzahl der Seiten und Zeit. Schön.
InformationsquelleAutor chadoh
Als ein bisschen mehr Informationen weiter zu Eamon Nerbonne Antwort auf die IE-rendering (IE8+), müssen Sie sicherstellen, dass der browser im standards-Modus. Dieser Artikel auf MSDN zeigt, was erforderlich ist - auch ein meta-tag in Ihre html zu zwingen das Problem:
Fühlt notdürftigem, aber dort haben Sie es... scheint zu funktionieren mehr konsequent.
InformationsquelleAutor AJ.