Estou fazendo um relatório HTML que pode ser impresso e tem "seções" que devem começar em uma nova página.
Existe alguma maneira de colocar algo no HTML / CSS que sinalize ao navegador que ele precisa forçar uma quebra de página (iniciar uma nova página) nesse ponto?
Não preciso que isso funcione em todos os navegadores existentes, acho que posso dizer às pessoas para usar um conjunto específico de navegadores para imprimir isso.
fonte
page-break-after
"aplica-se a elementos de bloco que geram uma caixa", portanto, usar um<span>
elemento vazio não funcionará. É uma idéia melhor aplicá-lo a uma parte do seu conteúdo. Veja developer.mozilla.org/pt-BR/docs/Web/CSS/page-break-after.pagebreak { min-height: 1px; page-break-before: always; }
Experimente este link
fonte
h1
não é um bom exemplo, pois significa um cabeçalho de 1º nível, e uma página normalmente deve ter apenas um desses títulos.h1:not(:first-child) { page-break-before:always; }
Só queria colocar uma atualização.
page-break-after
é uma propriedade herdada agora.Estados da página oficial
fonte
Você pode usar a propriedade CSS
page-break-before
(oupage-break-after
). Basta definirpage-break-before: always
sobre os elementos em nível de bloco (por exemplo, título,div
,p
, outable
elementos) que deve começar em uma nova linha.Por exemplo, para causar uma quebra de linha antes de qualquer cabeçalho de segundo nível e antes de qualquer elemento da classe
newpage
(por exemplo,<div class=newpage>
...), você usariafonte
Basta adicionar isto onde você precisa que a página vá para a próxima (o texto "página 1" estará na página 1 e o texto "página 2" estará na segunda página).
Isso também funciona:
fonte
Digamos que você tenha um blog com artigos como este:
Apenas adicionar isso ao CSS funcionou para mim:
(testado e funcionando no Chrome 69 e Firefox 62).
Referência:
https://www.w3schools.com/cssref/pr_print_pageba.asp
https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-after ; nota importante: aqui está dito,
This property has been replaced by the break-after property.
mas não funcionou para mimbreak-after
. Além disso, o documento MDN sobrebreak-after
não parece ser específico para quebras de página, então eu prefiro manter o (funcionando)page-break-after: always;
.fonte
Exemplo:
Ao imprimir o arquivo html com o código acima, a visualização de impressão mostrará três páginas (uma para cada bloco html " HTML_BLOCK_n "), onde, como no navegador, todos os três blocos aparecem seqüencialmente um após o outro.
fonte
Eu precisava de uma quebra de página após cada terceira linha enquanto usamos o comando print no navegador.
Adicionei <div style = 'page-break-before: always;'> </div>
depois de cada terceira linha e meu div principal exibir: flex; então eu removi a tela: flex; e estava funcionando como eu queria.
fonte
CSS
HTML
fonte
@ Chris Doggett faz todo o sentido. Embora, eu encontrei um truque engraçado no lvsys.com , e ele realmente funciona no Firefox e Chrome. Basta colocar esse comentário em qualquer lugar que você queira que a quebra de página seja inserida. Você também pode substituir a
<p>
tag por qualquer elemento do bloco.fonte