Estou tentando fazer com que o google chrome faça quebras de página.
Eu ouvi através de um monte de sites que page-break-after: always;
é válido no Chrome, mas não consigo fazê-lo funcionar, mesmo com um exemplo muito simples. existe alguma maneira de forçar uma quebra de página ao imprimir no cromo?
css
printing
google-chrome
Mike Valstar
fonte
fonte
Respostas:
Usei a seguinte abordagem com sucesso em todos os principais navegadores, incluindo o Chrome:
Este é um exemplo simplificado. No código real, cada div de página contém muitos mais elementos.
fonte
position: relative
.break-after
e sebreak-before
aplicam apenas ablock-level elements, table row groups, table rows (but see prose)
: drafts.csswg.org/css-break-3/#break-between - isso significa que não há flutuadores ou qualquer truque de posicionamento sofisticado.Na verdade, um detalhe está faltando na resposta que foi selecionada como aceita (de Phil Ross) ....
ele FAZ trabalho no Chrome, e a solução é realmente bobagem !!
Tanto o pai quanto o elemento no qual você deseja controlar a quebra de página devem ser declarados como:
verifique este violino: http://jsfiddle.net/petersphilo/QCvA5/5/show/
Isso é verdade para:
No entanto, controlar a quebra de página no Safari não funciona (no 5.1.7, pelo menos)
Eu espero que isso ajude!!!
PS: A pergunta abaixo trouxe à tona o fato de que as versões recentes do Chrome não respeitam mais isso, mesmo com a posição: relativo; truque. No entanto, eles parecem respeitar:
veja este violino: http://jsfiddle.net/petersphilo/QCvA5/23/show
então acho que temos que adicionar isso agora ...
Espero que isto ajude!
fonte
page-break-inside
. Qualquer ajuda?<h7 class="page-breaker" style="display: block;position: relative;page-break-before:always">Grade <?php echo $grade;?></h7>
Eu só queria observar aqui que o Chrome também ignora as configurações de quebra de página- * css em divs que foram flutuados.
Suspeito que haja uma boa justificativa para isso em algum lugar das especificações de css, mas imaginei que observar que poderia ajudar alguém algum dia ;-)
Apenas outra observação: o IE7 não pode reconhecer as configurações de quebra de página sem uma altura explícita no elemento de bloco anterior:
http://social.msdn.microsoft.com/forums/en-US/iewebdevelopment/thread/fe523ec6-2f01-41df-a31d-9ba93f21787b/
fonte
Tive um problema semelhante a este, mas acabei encontrando a solução. Eu tinha overflow-x: oculto; aplicada à tag <html>, portanto, independentemente do que eu fizesse a seguir no DOM, nunca permitiria quebras de página. Revertendo para overflow-x: visible; funcionou bem.
Espero que isso ajude alguém lá fora.
fonte
* { overflow-x: visible }
.Eu mesmo estou tendo esse problema - minhas quebras de página funcionam em todos os navegadores, exceto no Chrome - e fui capaz de isolar o elemento de quebra de página depois de estar dentro de uma célula de tabela. (Modelos antigos herdados no CMS.)
Aparentemente, o Chrome não honra as propriedades de quebra de página antes ou depois de dentro das células da tabela, então esta versão modificada do exemplo de Phil coloca o segundo e o terceiro título na mesma página:
A implementação do Chrome é (duvidosamente) permitida dada a especificação CSS - você pode ver mais aqui: http://www.google.com/support/forum/p/Chrome/thread?tid=32f9d9629d6f6789&hl=en
fonte
Cuidado com CSS:
display:inline-block
ao imprimir.Nenhuma das propriedades CCS para ir para a próxima página funcionaria para mim no Chrome e Firefox se minha tabela estivesse dentro de uma div com o estilo
display:inline-block
Por exemplo, o seguinte não funciona:
Mas o seguinte funciona:
fonte
display: flex
Já enfrentei esse problema no Chrome antes e a causa disso é que havia um div com altura mínima definida como um valor. A solução foi redefinir a altura mínima durante a impressão da seguinte forma:
fonte
Atualização de 2016:
Bem, eu tive esse problema, quando tive
no meu div.
Depois que eu fiz
tudo ficou bem e perfeito
fonte
Se você estiver usando o Chrome com Bootstrap Css, as classes que controlam o layout da grade, por exemplo, col-xs-12 etc, usam "float: left" que, como outros apontaram, destrói as quebras de página. Remova-os de sua página para impressão. Funcionou para mim (Na versão do Chrome = 49.0.2623.87)
fonte
Tenha esse problema. Tanto tempo passa ... Sem os campos laterais da página, a quebra é normal, mas quando os campos aparecem, a página e o "espaço de quebra de página" serão dimensionados. Portanto, com um campo normal, dentro de um documento, ele se mostrava incorreto. Eu conserto com set
E use
Use-o na primeira linha.
fonte
Pelo que eu sei, a única maneira de obter as quebras de página corretas em tabelas com o Google Chrome é dando ao elemento
<tr>
a propriedade display: inline-table (ou display: inline-block, mas se encaixa melhor em outros casos que não são tabelas ) Também devem ser utilizadas as propriedades "quebra de página após: sempre; quebra de página dentro: evitar;" como escrito por @Phil Rossfonte
Estava funcionando para mim quando usei preenchimento como:
fonte