Estoy haciendo un informe HTML que será imprimible, y tiene "secciones" que deberían comenzar en una nueva página.
¿Hay alguna forma de poner algo en el HTML / CSS que indique al navegador que necesita forzar un salto de página (comenzar una nueva página) en ese punto?
No necesito que esto funcione en todos los navegadores, creo que puedo decirle a la gente que use un conjunto específico de navegadores para imprimir esto.
fuente
page-break-after
"se aplica a los elementos de bloque que generan un cuadro", por lo que usar un<span>
elemento vacío no funcionará. Es una mejor idea aplicarlo a una parte de su contenido. Ver developer.mozilla.org/en-US/docs/Web/CSS/page-break-after.pagebreak { min-height: 1px; page-break-before: always; }
Prueba este enlace
fuente
h1
no es un buen ejemplo, ya que significa un encabezado de primer nivel, y una página normalmente debería tener solo uno de esos encabezados.h1:not(:first-child) { page-break-before:always; }
Solo quería poner una actualización.
page-break-after
Es una propiedad heredada ahora.Oficiales de páginas estados
fuente
Puede usar la propiedad CSS
page-break-before
(opage-break-after
). Sólo hay que establecerpage-break-before: always
en los elementos a nivel de bloque (por ejemplo, el rumbodiv
,p
otable
elementos) que debe comenzar en una nueva línea.Por ejemplo, para provocar un salto de línea antes de cualquier encabezado de segundo nivel y antes de cualquier elemento de la clase
newpage
(por ejemplo,<div class=newpage>
...), usaríafuente
Simplemente agregue esto donde necesite que la página pase a la siguiente (el texto "página 1" estará en la página 1 y el texto "página 2" estará en la segunda página).
Esto también funciona:
fuente
Digamos que tienes un blog con artículos como este:
Solo agregar esto al CSS funcionó para mí:
(probado y trabajando en Chrome 69 y Firefox 62).
Referencia:
https://www.w3schools.com/cssref/pr_print_pageba.asp
https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-after ; nota importante: aquí se dice
This property has been replaced by the break-after property.
pero no funcionó para míbreak-after
. Además, el documento de MDN sobrebreak-after
no parece ser específico para los saltos de página, por lo que prefiero mantener el (funcionando)page-break-after: always;
.fuente
Ejemplo:
Mientras imprime el archivo html con el código anterior, la vista previa de impresión mostrará tres páginas (una para cada bloque html " HTML_BLOCK_n ") donde, como en el navegador, los tres bloques aparecen secuencialmente uno tras otro.
fuente
Necesitaba un salto de página después de cada tercera fila mientras usamos el comando de impresión en el navegador.
Agregué <div style = 'page-break-before: always;'> </div>
después de cada 3ra fila y mi div principal tiene display: flex; así que quité la pantalla: flex; y estaba funcionando como quiero.
fuente
CSS
HTML
fuente
@ Chris Doggett tiene mucho sentido. Sin embargo , encontré un truco divertido en lvsys.com , y en realidad funciona en Firefox y Chrome. Simplemente coloque este comentario en cualquier lugar donde desee que se inserte el salto de página. También puede reemplazar la
<p>
etiqueta con cualquier elemento de bloque.fuente