J'essaye de demander à Google Chrome de faire des sauts de page.
On m'a dit via un tas de sites Web page-break-after: always;
valides dans Chrome, mais je n'arrive pas à le faire fonctionner même avec un exemple très simple. existe-t-il un moyen de forcer un saut de page lors de l'impression dans Chrome?
css
printing
google-chrome
Mike Valstar
la source
la source
Réponses:
J'ai utilisé avec succès l'approche suivante dans tous les principaux navigateurs, y compris Chrome:
Ceci est un exemple simplifié. Dans le code réel, chaque page div contient beaucoup plus d'éléments.
la source
position: relative
.break-after
etbreak-before
s'applique uniquement àblock-level elements, table row groups, table rows (but see prose)
: drafts.csswg.org/css-break-3/#break-between - cela signifie pas de flotteurs ou de trucs de positionnement sophistiqués.En fait, un détail manque dans la réponse qui est choisie comme acceptée (de Phil Ross) ...
il DOES travail dans Chrome, et la solution est vraiment stupide !!
Le parent et l'élément sur lequel vous souhaitez contrôler le saut de page doivent être déclarés comme:
Découvrez ce violon: http://jsfiddle.net/petersphilo/QCvA5/5/show/
Ceci est vrai pour:
Cependant, contrôler le saut de page dans Safari ne fonctionne pas (au moins dans la version 5.1.7)
J'espère que ça aide!!!
PS: La question ci-dessous a soulevé le fait que les versions récentes de Chrome ne respectent plus cela, même avec la position: relative; tour. Cependant, ils semblent respecter:
voir ce violon: http://jsfiddle.net/petersphilo/QCvA5/23/show
donc je suppose que nous devons ajouter cela maintenant ...
J'espère que cela t'aides!
la source
page-break-inside
. De l'aide?<h7 class="page-breaker" style="display: block;position: relative;page-break-before:always">Grade <?php echo $grade;?></h7>
Je voulais juste noter ici que Chrome ignore également les paramètres de page-break- * css dans les div qui ont été flottants.
Je soupçonne qu'il y a une bonne justification à cela quelque part dans la spécification css, mais j'ai pensé que cela pourrait aider quelqu'un un jour ;-)
Juste une autre note: IE7 ne peut pas reconnaître les paramètres de saut de page sans une hauteur explicite sur l'élément de bloc précédent:
http://social.msdn.microsoft.com/forums/en-US/iewebdevelopment/thread/fe523ec6-2f01-41df-a31d-9ba93f21787b/
la source
J'ai eu un problème similaire à celui-ci, mais j'ai finalement trouvé la solution. J'avais overflow-x: caché; appliqué à la balise <html> donc peu importe ce que j'ai fait ci-dessous dans le DOM, il n'autoriserait jamais les sauts de page. En revenant à overflow-x: visible; cela a bien fonctionné.
Espérons que cela aide quelqu'un là-bas.
la source
* { overflow-x: visible }
.J'ai moi-même ce problème - mes sauts de page fonctionnent dans tous les navigateurs sauf Chrome - et j'ai pu l'isoler jusqu'à ce que l'élément de saut de page après se trouve dans une cellule de tableau. (Anciens modèles hérités du CMS.)
Apparemment, Chrome ne respecte pas les propriétés de saut de page avant ou de saut de page après dans les cellules du tableau, donc cette version modifiée de l'exemple de Phil met le deuxième et le troisième titre sur la même page:
La mise en œuvre de Chrome est (douteusement) autorisée compte tenu de la spécification CSS - vous pouvez en savoir plus ici: http://www.google.com/support/forum/p/Chrome/thread?tid=32f9d9629d6f6789&hl=fr
la source
Attention aux CSS:
display:inline-block
lors de l'impression.Aucune des propriétés CCS pour aller à la page suivante ne fonctionnerait pour moi dans Chrome et Firefox si ma table était à l'intérieur d'un div avec le style
display:inline-block
Par exemple, ce qui suit ne fonctionne pas:
Mais le travail suivant:
la source
display: flex
J'ai déjà rencontré ce problème sur Chrome et la cause en est qu'il y avait un div a min-height réglé sur une valeur. La solution consistait à réinitialiser la hauteur minimale lors de l'impression comme suit:
la source
Mise à jour 2016:
Eh bien, j'ai eu ce problème, quand j'avais
sur mon div.
Après avoir fait
tout est devenu très bien et parfait
la source
Si vous utilisez Chrome avec Bootstrap Css, les classes qui contrôlent la disposition de la grille, par exemple col-xs-12, etc. utilisent "float: left" qui, comme d'autres l'ont souligné, détruit les sauts de page. Retirez-les de votre page pour l'impression. Cela a fonctionné pour moi. (Sur la version Chrome = 49.0.2623.87)
la source
J'ai ce problème. Tant de temps passe ... Sans les champs latéraux de la page, c'est normal, mais lorsque les champs apparaissent, la page et "l'espace de saut de page" seront mis à l'échelle. Donc, avec un champ normal, dans un document, il était affiché incorrect. Je le répare avec l'ensemble
et utilise
Utilisez-le en première ligne.
la source
Pour autant que je sache, le seul moyen d'obtenir les sauts de page corrects dans les tableaux avec Google Chrome est de lui donner à l'élément
<tr>
la propriété display: inline-table (ou display: inline-block mais cela convient mieux dans d'autres cas qui ne sont pas des tableaux ). Il faut également utiliser les propriétés "page-break-after: always; page-break-inside: avoid;" comme écrit par @Phil Rossla source
Cela fonctionnait pour moi quand j'utilisais un rembourrage comme:
la source