Je fais un rapport HTML qui va être imprimable, et il a des "sections" qui devraient commencer dans une nouvelle page.
Existe-t-il un moyen de mettre quelque chose dans le HTML / CSS qui signalera au navigateur qu'il doit forcer un saut de page (démarrer une nouvelle page) à ce stade?
Je n'ai pas besoin de cela pour fonctionner dans tous les navigateurs, je pense que je peux dire aux gens d'utiliser un ensemble spécifique de navigateurs pour imprimer ceci.
la source
page-break-after
«s'applique aux éléments de bloc qui génèrent une boîte», donc l'utilisation d'un<span>
élément vide ne fonctionnera pas. Il est préférable de l'appliquer à une partie de votre contenu. Voir developer.mozilla.org/en-US/docs/Web/CSS/page-break-after.pagebreak { min-height: 1px; page-break-before: always; }
Essayez ce lien
la source
h1
n'est pas un bon exemple, car cela signifie un titre de premier niveau, et une page ne devrait normalement avoir qu'un seul de ces titres.h1:not(:first-child) { page-break-before:always; }
Je voulais juste mettre une mise à jour.
page-break-after
est maintenant une propriété héritée.États de la page officielle
la source
Vous pouvez utiliser la propriété CSS
page-break-before
(oupage-break-after
). Il suffit de définirpage-break-before: always
sur ces éléments au niveau des blocs (par exemple, le capdiv
,p
outable
éléments) qui devrait commencer sur une nouvelle ligne.Par exemple, pour provoquer un saut de ligne avant tout en-tête de 2e niveau et avant tout élément de la classe
newpage
(par exemple,<div class=newpage>
...), vous utiliseriezla source
Ajoutez simplement ceci là où vous avez besoin de la page pour aller à la suivante (le texte "page 1" sera sur la page 1 et le texte "page 2" sera sur la deuxième page).
Cela fonctionne aussi:
la source
Disons que vous avez un blog avec des articles comme celui-ci:
L'ajout de ceci au CSS a fonctionné pour moi:
(testé et fonctionne sur Chrome 69 et Firefox 62).
Référence:
https://www.w3schools.com/cssref/pr_print_pageba.asp
https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-after ; note importante: ici c'est dit
This property has been replaced by the break-after property.
mais ça n'a pas fonctionné pour moi avecbreak-after
. De plus, la documentation MDN surbreak-after
ne semble pas être spécifique pour les sauts de page, donc je préfère garder le (en état de marche)page-break-after: always;
.la source
Exemple:
Lors de l'impression du fichier html avec le code ci-dessus, l'aperçu avant impression affichera trois pages (une pour chaque bloc html " HTML_BLOCK_n ") où, comme dans le navigateur, tous les trois blocs apparaissent séquentiellement l'un après l'autre.
la source
J'avais besoin d'un saut de page après chaque 3ème ligne pendant que nous utilisons la commande d'impression sur le navigateur.
J'ai ajouté <div style = 'page-break-before: always;'> </div>
après chaque 3ème ligne et mon div parent ont affichage: flex; j'ai donc supprimé l'affichage: flex; et cela fonctionnait comme je le voulais.
la source
CSS
HTML
la source
@ Chris Doggett est parfaitement logique. Bien que j'ai trouvé une astuce amusante sur lvsys.com , et cela fonctionne réellement sur Firefox et Chrome. Placez simplement ce commentaire là où vous souhaitez insérer le saut de page. Vous pouvez également remplacer la
<p>
balise par n'importe quel élément de bloc.la source