Я делаю HTML-отчет, который будет печататься, и в нем есть «разделы», которые должны начинаться на новой странице.
Есть ли способ поместить что-то в HTML / CSS, которое будет сигнализировать браузеру о том, что в этот момент ему необходимо принудительно разорвать страницу (начать новую страницу)?
Мне не нужно, чтобы это работало в каждом браузере, я думаю, что могу посоветовать людям использовать определенный набор браузеров, чтобы распечатать это.
источник
page-break-after
«применяется к блочным элементам, которые создают поле», поэтому использование пустого<span>
элемента не сработает. Лучше применить его к части вашего контента. См developer.mozilla.org/en-US/docs/Web/CSS/page-break-after.pagebreak { min-height: 1px; page-break-before: always; }
Попробуйте эту ссылку
<style> @media print { h1 {page-break-before:always} } </style>
источник
h1
не является хорошим примером, так как это означает заголовок 1-го уровня, а страница обычно должна иметь только один такой заголовок.h1:not(:first-child) { page-break-before:always; }
Просто хотел поставить обнову.
page-break-after
теперь унаследованная собственность.Официальная страница заявляет
источник
Вы можете использовать свойство CSS
page-break-before
(илиpage-break-after
). Просто установитеpage-break-before: always
на эти блочные элементы (например, заголовок,div
,p
илиtable
элементы) , которые должны начинаться с новой строки.Например, чтобы вызвать разрыв строки перед заголовком 2-го уровня и перед любым элементом в классе
newpage
(например,<div class=newpage>
...), вы должны использоватьh2, .newpage { page-break-before: always }
источник
First page (scroll down to see the second page) <div style="break-after:page"></div> Second page <br> <br> <button onclick="window.print();return false;" />Print (to see the result) </button>
Просто добавьте это туда, где вам нужно, чтобы страница переходила к следующей (текст «страница 1» будет на странице 1, а текст «страница 2» будет на второй странице).
Page 1 <div style='page-break-after:always'></div> Page 2
Это тоже работает:
First page (there is a break after this) <div style="break-after:page"></div> Second page (This will be printed in the second page)
источник
Допустим, у вас есть блог с такими статьями:
<div class="article"> ... </div>
Просто добавление этого в CSS сработало для меня:
@media print { .article { page-break-after: always; } }
(протестировано и работает в Chrome 69 и Firefox 62).
Справка:
https://www.w3schools.com/cssref/pr_print_pageba.asp
https://developer.mozilla.org/en-US/docs/Web/CSS/page-break-after ; важное замечание: здесь сказано,
This property has been replaced by the break-after property.
но у меня это не сработалоbreak-after
. Кроме того, документ MDNbreak-after
, похоже, не относится к разрывам страниц, поэтому я предпочитаю, чтобы (рабочий)page-break-after: always;
.источник
Мне нужен разрыв страницы после каждой третьей строки, пока мы используем команду печати в браузере.
я добавил
<div style='page-break-before: always;'></div>
после каждой третьей строки и моего родительского div
display: flex;
я удалил,display: flex;
и он работал так, как я хочу.источник
Пример:
HTML_BLOCK_1 <p style="page-break-after: always"></p> HTML_BLOCK_2 <p style="page-break-after: always"></p> HTML_BLOCK_3
При печати html-файла с указанным выше кодом предварительный просмотр для печати покажет три страницы (по одной для каждого html-блока « HTML_BLOCK_n »), где, как и в браузере, все три блока появляются последовательно один за другим.
источник
CSS
@media print { .pagebreak { page-break-before: always; } }
HTML
<div class="pagebreak"></div>
источник
@ Крис Доггетт имеет смысл. Хотя я нашел одну забавную уловку на lvsys.com , и она действительно работает в firefox и chrome. Просто поместите этот комментарий в любом месте, где вы хотите вставить разрыв страницы. Вы также можете заменить
<p>
тег любым блочным элементом.<p><!-- pagebreak --></p>
источник