установите 2 разрыва страницы на html печать
Я хочу добавить пустую страницу на печать html страниц. Я использую этот класс:
.page{
PAGE-BREAK-AFTER: always;
}
Когда страница печатается, она разрывается. Дело в том, что я хочу добавить еще один разрыв страницы после этого.
Я пытался с:
.page{
page-break-after: always;
page-break-before: always;
}
Но установлен только один. Как я могу установить 2 или много разрывов страниц? Или как я мог это сделать, чтобы добавить пустую страницу?
html css page-breakПоделиться Источник jonal 21 марта 2016 в 16:17
2 ответа
- Использование Javascript для добавления разрыва страницы в некоторых случаях
Я работаю над печатной формой в HTML, которая предназначена для извлечения данных из приложения базы данных и отображения их в виде страницы, настроенной для печати. У меня есть несколько таблиц, настроенных для извлечения различных данных из базы данных и отображения их в печатном формате….
- Как добиться разрыва страницы в таблице HTML для Google Chrome?
Я пытаюсь напечатать большую таблицу, сгенерированную с помощью jQuery на странице HTML. Я использую Chrome 26.0.141. Проблема заключается в разрыве страницы. я изначально использовал это css #membersList table { page-break-inside:auto; position:relative} #membersList tr { page-break-before:avoid;…
1
Попробуйте сделать это:
<div></div>
<div>
<!-- page content here -->
</div>
И CSS:
.page-before {
page-break-before: always;
}
.page {
page-break-after: always;
}
И пока page-before
div всегда пуст, он не должен быть виден или негативно влиять на макет.
Поделиться Potassium Ion 21 марта 2016 в 16:29
0
Наконец мне пришлось ввести какой-то текст в div просто для того, чтобы IE не игнорировал перерыв после этого. В конце концов все становится именно так:
.page {
page-break-after: always;
}
и html:
<div>
<!-- page content here -->
</div>
<div>
·
</div>
Поделиться jonal 22 марта 2016 в 19:56
Похожие вопросы:
Проблема разрыва страницы отчета SSRS
У меня проблема с разрывами страниц в отчете SSRS, и я ни в коем случае не эксперт. Это находится в отметке XML, чтобы обеспечить разрыв страницы: <TableGroups> <TableGroup> <Grouping…
LogiXML студии — доклад логи силу разрыва страницы
Я не уверен, насколько широка аудитория пользователей Logi Report, которые наблюдают за сайтом, но вот моя дилемма. Я новый, чтобы найти способ, чтобы вставить разрыв страницы после того, как группа…
Повторяющийся заголовок таблицы после разрыва страницы
При печати таблицы HTML вы можете использовать CSS, чтобы заставить строку заголовка таблицы снова отображаться после разрыва страницы. Этот стиль: @media print { thead { display:…
Использование Javascript для добавления разрыва страницы в некоторых случаях
Я работаю над печатной формой в HTML, которая предназначена для извлечения данных из приложения базы данных и отображения их в виде страницы, настроенной для печати. У меня есть несколько таблиц,…
Как добиться разрыва страницы в таблице HTML для Google Chrome? Я пытаюсь напечатать большую таблицу, сгенерированную с помощью jQuery на странице HTML. Я использую Chrome 26.0.141. Проблема заключается в разрыве страницы. я изначально использовал это css…
Печать страницы из шаблона HTML
У меня есть страница HTML, которая отображает сводку данных вверху и сетку внизу. У меня есть кнопка вверху, которая должна печатать информацию на странице в определенном формате. Чтобы…
Html таблица разрыва страницы с рамкой (печать)
Мне нужно использовать разрыв страницы внутри строк таблицы. Но проблема в том, что когда я использую разрыв страницы после строки(tr), эта строка(tr) рисуется до конца страницы при печати. Любые…
Как игнорировать 2 линии разрыва в HTML и CSS?
Я отлаживаю существующее приложение Java/JSP/Struts, каким-то образом оно генерирует 2 строки разрыва и оставляет большое пространство на странице : <Br></Br> <Br></Br>…
Проблема разрыва страницы в браузерах печать
Вот как выглядит моя страница Html в режиме печати. Мне нужно поместить его на новую страницу, когда он ломается в 2, и для этого нужно вставить ниже div перед этими элементами (то, что я делаю для…
Как избежать разрыва страницы внутри tr?
Как избежать разрыва страницы внутри <tr> ? (ANGULAR PROJECT) у меня есть таблица (PrimeNG table), и я хочу избежать разрыва после печати страницы. Я использую Chromium / Chrome browse. После…
page-break-after | CSS справочник
Поддержка браузерами
12.0+ | 4.0+ | 1.0+ | 1.0+ | 7.0+ | 1.2+ |
Internet Explorer и Firefox не поддерживают значения свойства «left» и «right».
Описание
CSS свойство page-break-after определяет наличие или отсутствие разрыва страницы после заданного элемента и используется при печати или для предварительного просмотра печати.
Свойство нельзя использовать с абсолютно позиционированными элементами.
Используйте свойства для разрыва страницы как можно реже и избегайте применения этих свойств внутри таблиц, плавающих элементов и блочных элементов с рамой.
Значение по умолчанию: | auto |
---|---|
Применяется: | к блочным элементам, которые находятся в нормальном потоке элементов |
Анимируется: | нет |
Наследуется: | нет |
Версия: | CSS2 |
Синтаксис JavaScript: | object.style.pageBreakAfter=»always» |
Синтаксис
page-break-after: auto|always|avoid|left|right|inherit;
Значения свойства
Значение | Описание |
---|---|
auto | Вставляет разрыв страницы после элемента при необходимости. |
always | Всегда делает разрыв страницы после элемента. |
avoid | Запрещает разрыв страницы после элемента. |
left | Делает разрыв страницы после элемента таким образом, что следующая(левая) страница будет чистой. |
right | Делает разрыв страницы после элемента таким образом, что следующая(правая) страница будет чистой. |
inherit | Указывает, что значение наследуется от родительского элемента. |
Пример
<!doctype html> <html> <head> <meta charset="utf-8"> <title>Пример</title> <style> @media print { table { page-break-after: always; } } </style> </head> <body> <p>Пример использования свойства page-break-after</p> <table> <tr><td>ячейка 1</td><td>ячейка 2</td></tr> </table> <p>Этот элемент будет отсутствовать при предварительном просмотре печати и распечатан на следующей странице.</p> </body> </html>
Результат данного примера в окне браузера:
CSS page-break-after
Пример
Всегда вставляйте разрыв страницы после элемента <Footer>:
@media print
{
}
Определение и использование
Свойство page-break-after
добавляет разрыв страницы после заданного элемента.
Совет: Свойства: pagebb, разбиение на страницы и pagebi помогают определить, как документ должен вести себя при печати.
Примечание: Это свойство нельзя использовать в пустой <div> или на абсолютно позиционированных элементах.
Значение по умолчанию: | auto |
---|---|
Inherited: | no |
Animatable: | no. Читайте о animatable |
Version: | CSS2 |
Синтаксис JavaScript: | object.style.pageBreakAfter=»always» |
Поддержка браузера
Номера в таблице указывают первую версию браузера, которая полностью поддерживает свойство.
Свойство | |||||
---|---|---|---|---|---|
page-break-after | 1.0 | 4.0 | 1.0 | 1.2 | 7.0 |
Примечание: Ни один из браузеров не поддерживает «Избегайте».
Примечание: Браузеры могут интерпретировать «Left» и «Right» как «всегда».
Синтаксис CSS
page-break-after: auto|always|avoid|left|right|initial|inherit;
Значения свойств
Значение | Описание |
---|---|
auto | По умолчанию. Автоматический разрыв страницы |
always | Всегда вставлять разрыв страницы после элемента |
avoid | Избегайте разрыва страницы после элемента (если возможно) |
left | Вставка разрыва страницы после элемента таким образом, чтобы Следующая страница была отформатирована как левая страница |
right | Вставка разрыва страницы после элемента таким образом, чтобы Следующая страница была отформатирована как правая страница |
initial | Присваивает этому свойству значение по умолчанию. (Читайте о initial) |
inherit | Наследует это свойство из родительского элемента. (Читайте о inherit) |
Похожие страницы
HTML DOM Справочник: pageBreakAfter Свойство
page-break-after | Справочник CSS | schoolsw3.com
Обновляется!!! Справочник JavaScript
Пример
Всегда вставляйте разрыв страницы после элемента <footer>:
@media print
{
footer {page-break-after: always;}
}
Определение и использование
Свойство page-break-after
добавляет разрыв страницы после указанного элемента.
Совет: Свойства: page-break-before, page-break-after и page-break-inside помогает определить, как документ должен вести себя при печати.
Примечание: Вы не можете использовать это свойство в пустом <div> или в абсолютно позиционированных элементах.
Значение по умолчанию: | auto |
---|---|
Унаследованный: | нет |
Анимируемый: | нет. Прочитать о animatable |
Версия: | CSS2 |
JavaScript синтаксис: | object.style.pageBreakAfter=»always» |
Поддержка браузеров
Числа в таблице указывают первая версия браузер, который полностью поддерживает свойство.
Свойство | |||||
---|---|---|---|---|---|
page-break-after | 1.0 | 4.0 | 1.0 | 1.2 | 7.0 |
Примечание: Ни один из браузеров не поддерживает «avoid».
Примечание: Браузеры могут интерпретировать «left» и «right» как «always».
CSS Синтаксис
page-break-after: auto|always|avoid|left|right|initial|inherit;
Значения свойств
Значение | Описание |
---|---|
auto | По умолчанию. Автоматический разрыв страницы |
always | Всегда вставляет разрыв страницы после элемента |
avoid | Избегайте разрыва страницы после элемента (если это возможно) |
left | Вставить разрыв страницы после элемента, чтобы следующая страница была отформатирована как левая страница |
right | Вставить разрыв страницы после элемента, чтобы следующая страница была отформатирована как правая страница |
initial | Устанавливает это свойство в значение индекса. Прочитать о initial |
inherit | Наследует это свойство от родительского элемента. Прочитать о inherit |
Связанные страницы
HTML DOM Справочник: Свойство pageBreakAfter
CSS свойство break-before | назначение, допустимые значения, примеры
Свойство break-before определяет разрыв колонки перед элементом в многоколоночном элементе, а также отвечает за разбивку страниц при печати.
Допустимые значения
- auto — принудительно разрыв страницы/колонки не делается
- always — перед элементом ставиться разрыв страницы
- avoid — избегаем разрыва страницы/колонки перед элементом
- left — ставиться один или два разрыва страниц, чтобы следующая страница начиналась с левой страницы
- right — ставиться один или два разрыва страниц, чтобы следующая страница начиналась с правой страницы
- page — принудительно разрывается страница перед этим элементом
- column — принудительно разрывается колонка перед этим элементом
- avoid-page — избегать разрыва страницы перед этим элементом
- avoid-column — избегать разрыва колонки после этого элемента
Значение по умолчанию | auto |
---|---|
Применимо | ко всем блочным элементам |
Наследование | нет |
Версия CSS | CSS 3 |
Поддерживается браузерами |
Пример
hr {
break-before: always;
}
Твой код:
<html> <head> <title></title> <style type=»text/css»> <!— hr { break-before:page; } —> </style> </head> <body> <p>тест до разрыва страницы</p> <hr /> <p>текст после разрыва страницы (на момент выхода статьи в прямом виде не поддерживается ни одним распространенным браузером)</p> </body> </html>Сделай код и жми тутРезультат:
большой полигонЗаметки
Это свойство относится к CSS3 модулю CSS Multi-column Layout Module — кандидата в рекомендацию W3C с 17 декабря 2009 года.
Хотя это свойство и не поддерживается распространенными браузерами в прямом виде, Safari 3 и выше и Chrome 1 и выше поддерживают похожее свойство -webkit-column-break-before. Оно аналогично свойству page-break-before и имеет одинаковые с ним значения, но относящиеся не к страницам, а к колонкам. Комбинацией двух этих свойств для Safari и Chrome можно добиться такого же эффекта, как и при применении свойства break-before.
Свойство break-inside Свойство break-afterpage-break — Русский — it-swarm.com.ru
page-break — Русский — it-swarm.com.ruit-swarm.com.ru
Wicked_pdf избегать разрыва страницы не работает
Печать CSS: Избегать разрезания пополам DIV между страницами?
Как не разрывать страницу после \ включить в LaTeX
Ручной разрыв страницы в TCPDF
Могу ли я вызвать разрыв страницы при печати HTML?
Вставить разрывы страниц между группами отчетов с помощью двусторонней печати
Вставка разрыва страницы в отчет SSRS
Как применить CSS-разрыв страницы для печати таблицы с большим количеством строк?
разрыв страницы после не работает во flexbox
разрыв страницы после не работает в Chrome
Как разделить основной контент с фиксированным верхним и нижним колонтитулами для нескольких страниц
Как вставить разрыв страницы в HTML, чтобы wkhtmltopdf его анализировал?
Facebook API: Получите поклонников / людей, которым нравится страница
Номер страницы и смещение
Angular 6: возможно многостраничное приложение (MPA)?
Какой лучший способ вырваться из вложенных (для) циклов?
Как вырваться из нескольких циклов в Python?
Как мне выйти из цикла в Perl?
Разница между перерывом и продолжением выписки
Могу ли я использовать break для выхода из нескольких вложенных циклов?
Как вырваться из петли изнутри выключатель?
Как разбить вложенные циклы в JavaScript?
Вырваться из цикла while, содержащего оператор switch
Использование continue в операторе switch
Как вырваться из нескольких циклов одновременно в C #?
Зачем нам нужен перерыв после падежа?
Как мне выйти из цикла в Scala?
Разрыв строки в формате XML?
Разрыв строки в XML?
Почему в C # есть перерыв, если он не является обязательным?
Плохо ли использовать разрыв в цикле for?
разбить и вернуть в Ruby, как вы их используете?
HTML5 canvas ctx.fillText не будет переносить строки?
В Java как break взаимодействует с вложенными циклами?
Что означает число после «перерыва» или «продолжить» в PHP?
Как я могу разорвать внешний цикл с помощью PHP?
R: перерыв для цикла
В JavaScript считается ли возврат из оператора switch лучшей практикой, чем использование break?
Как выйти из функции
Как выйти из двух вложенных циклов?
Выход из цикла FOR в командном файле?
Python: «вырваться» из оператора if внутри цикла for
Переход от одного случая к случаю по умолчанию в операторе switch
Как выйти или выйти из метода в Java?
Как выйти из цикла while в Java?
Разрыв цикла, когда в R появляются «warnings ()»
вырваться из если и foreach
Как вырваться из вложенных циклов?
перерыв; C++: какой цикл он на самом деле ломает
В Go ли оператор break разрывается от switch / select?
Плохо ли использовать выражение «goto»?
Python: Что делает точка с запятой?
Оператор Break внутри двух циклов while
Как убить цикл while нажатием клавиши?
Как вырваться из цикла while в Python?
Выход из цикла for в Java
F # перерыв в цикле
сценарий разрыва / выхода
Это плохая практика использовать break для выхода из цикла в Java?
Относительно операторов переключения Java — использование возврата и пропуска разрывов в каждом случае
Разбить длинное слово с помощью CSS
Как использовать разрыв или продолжение внутри цикла for в шаблоне Twig?
Перерыв управления не работает в 2010 (2013) Excel VBA
Java Как я могу разорвать цикл while под оператором switch?
Есть ли эквивалент в цикле Python for … else в C++?
Должны ли мы разбить регистр по умолчанию в операторе switch?
Swift 2 — Вариант использования для использования оператора break on if?
После обновления до vs2017.3 точки останова не будут достигнуты
Ваше приложение вошло в состояние останова, но нет кода для показа, потому что все потоки выполняли внешний код (обычно системный или структурный код)
Как сломать цикл ForEach в TypeScript
незаконное использование оператора break; Javascript
Вложенный jQuery.each () — продолжить / прервать
удалить все разрывы строк (ввести символы) из строки, используя R
Как прервать цикл while из условия if внутри цикла while?
Выход из итерации для цикла Swift iOS
Удалите заголовок и колонтитул браузера по умолчанию при печати HTML
Как создать якорь и перенаправить на этот конкретный якорь в Ruby on Rails
В чем разница между Page.IsPostBack и Page.IsCallBack?
JavaScript жесткое обновление текущей страницы
Как выполнить Page_Load () в базовом классе страницы?
Facebook: получить список страниц, администратором которых является пользователь
На обратной передаче, как я могу проверить, какой элемент управления вызывает обратную передачу в событии Page_Init
Принудительная прокрутка страницы вверх при обновлении страницы в HTML
Получить название сайта по ссылке
Не могу понять аномалию Белади
Обновить страницу, используя JavaScript или HTML
Facebook Like Widget на фан-странице, область комментариев вне видимой области
C # Очистить сессию
Graph API возвращает «false» или «Unsupported get request», получая доступ к публичной странице Facebook
Жетоны доступа к странице Facebook — срок их действия истекает?
Простой пример публикации на фан-странице Facebook через PHP?
Событие PageIndexChanging, вызванное GridView ‘GridView1’, которое не было обработано
Токен доступа к Facebook для страниц
Получить текущий URL/URI без некоторых переменных $ _GET
ASP.NET: отображение предупреждения из кода C #
Как вставить фид страницы в Facebook на мой сайт
Отключение кнопки отправки после одного клика
Вызванное GridView событие PageIndexChanging, которое не было обработано
Как обнаружить обновление страницы в .net
Как программно обновить браузер
Content dated before 2011-04-08 (UTC) is licensed under CC BY-SA 2.5. Content dated from 2011-04-08 up to but not including 2018-05-02 (UTC) is licensed under CC BY-SA 3.0. Content dated on or after 2018-05-02 (UTC) is licensed under CC BY-SA 4.0. | PrivacyПечать из браузера средствами CSS | CSS | Статьи | Программирование Realcoding.Net
Web наступает. Все больше и больше обычных настольных приложений переезжает в Internet. Уже никого не удивить онлайновым текстовым или графическим редактором. А уж различные многопользовательские комплексы, базы данных, системы отчетности — тут раздолье для веб-технологий.
Например, еще несколько лет назад было бы вполне нормально сделать систему регистрации и учета клиентов скажем стоматологической поликлиники или библиотеки в Delphi, добавить базу данных и сетевую часть. Но сейчас такое решение окажется неразумным: гораздо проще, удобнее, а значит и эффективнее использовать все то, что предоставляет нам Web, даже если приложением будут пользоваться только внутри локальной сети. Кроме того, такое решение кроссплатформенное, что актуально в связи с наметившейся тенденцией перехода к свободным ОС. Все что нужно на клиентских компьютерах — наличие браузера, никаких установок, настроек и прочего.
Но у решения все делать в web есть недостаток (даже не один, но я сейчас не буду перечислять все): неудобство при печати отчетов, бланков документов и прочих печатных страниц. Это связано с тем, что веб-страницы рассчитываются прежде всего для отображения на экране монитора и не подтачиваются для печати, что нередко ведет к расползанию печатной страницы. К счастью это все временные трудности и их можно обойти. Можно, например, генерировать отчеты в pdf или doc. Но я считаю это не слишком удобным: пользователю надо устанавливать программы, работающие с этими форматами, каждый раз выкачивать с сервера сгенерированный файл, печатать из сторонней программы, а не браузера. Поэтому стоит приложить усилия к созданию страниц, правильно выводящихся на печать прямо из браузера.
Раз имеются отдельные версии страницы для отображения на экране и для печати, то
следует разделить CSS на две части по назначению. Свойства элементов,
специальные для отображения на экране будут храниться в блоке
@media screen {}
а для печати, соответственно, в
@media print {}
Первое, что нужно сделать — отключить все лишние графические элементы: баннеры (в веб-приложении для локальной сети врядли они будут), меню, еще что-нибудь. Достигается это следующей конструкцией в CSS:
@media print {
.banner {display:none;}
}
Также запрещаем отображение других лишних блоков. Возможно, некоторые блоки
наоборот стоит отображать при печати, а на экране скрывать. Красивый цветной
логотип наверняка на черно-белом принтере распечатается грязным или недостаточно
четким, стоит подменить его на специальный контрастный:
@media screen {
div.logo {background: url(img/logo.png) no-repeat top;}
}
@media print {
div.logo {background: url(img/logo_print.png) no-repeat top;}
}
Скорее всего пользователь веб-приложения будет распечатывать страницу на
принтере формата A4 (если только это приложение не для полиграфии). Ограничим
страницу нужным размером, вставив конструкцию @page. Можно указать размеры
страницы (обязательно в сантиметрах или дюймах, ни в коем случае не в пикселах!),
так для A4 это 8.5×11 дюймов или 21×29.7 см.
@page {
size 8.5in 11in;
margin: 1cm
}
Если предполагается двухсторонняя печать, то следует различать левую и правую
страницы:
@page :left {
margin-left: 4cm;
margin-right: 3cm;
}
@page :right {
margin-left: 3cm;
margin-right: 4cm;
}
Также размеры всех элементов на странице стоит задавать в относительных единицах. Не помешает подменять шрифт: на бумаге лучше смотрятся шрифты с засечками.
При печати многостраничных отчетов или заполненных бланков документов
потребуется каждую часть отчета или каждый бланк выводить на отдельную страницу.
Мне показалось очень удобным на экране показать разрыв страницы с помощью
горизонтальной черты hr, а при печати по ней делать разрыв страницы:
@media print {
hr {PAGE-BREAK-AFTER: always; visibility: hidden;}
}
Напомню, что PAGE-BREAK-AFTER заставляет принтер продолжить печать со следующей страницы после вывода элемента с этим свойством, а PAGE-BREAK-BEFORE — перед выводом. В приведенном мной примере hr при печати не отображается (visibility: hidden), но это не мешает ему управлять принтером.
В одном из моих проектов оператору нужно было заполнять форму с данными клиента, после чего ему может понадобиться распечатка этой формы со специальным форматированием. Я решил на одной странице объединить и версию для отображения на экране с полями ввода формы и версию для печати. Это упрощает задачу оператора: достаточно после ввода данных и сохранения нажать кнопку «Распечатать» без загрузки специальной страницы.
Для этого я сформировал форму ввода данных в виде пустого бланка документа. Кстати, это хорошая идея: форма получается компактная и выглядит почти как на бумаге. Далее собираем на одной странице две версии документа, ловко манипулируя свойством display. Каждое поле в HTML выглядит так (упрощенно):
<td>ФИО клиента:</td>
<td><input type=text name=client_name size=30 value="Вася Пупкин"/>
<span class=field>Вася Пупкин</span></td>
Обратите внимание на этот span — в нем дублируется значение поля. CSS-файл такой:
@media screen {
.field {display: none;}
}
@media print {
input {display: none;}
td {border: 1px solid;}
.field {text-decoration: underline;}
}
Таким образом при отображении на экране мы видим поля ввода, а при печати — готовый результат.
Напоследок хочу сказать об одном неприятном моменте. Браузером устанавливаются свои поля страницы и колонтитулы. Это может разом испортить весь красиво сформированный бланк документа или растянуть страницу на две. JavaScript эту проблему не решит. Поэтому остается лишь попросить пользователя (высветив напоминание) убрать в браузере поля и колонтитулы.
Автор: http://maovrn.habrahabr.ru/
CSS Page-break-after Свойство
Пример
Всегда вставляйте разрыв страницы после элемента
@media print
{
нижний колонтитул {page-break-after: always;}
}
Определение и использование
Свойство разрыв страницы после
добавляет разрыв страницы после
указан
элемент.
Наконечник: Свойства: разрыв страницы до, разрыв страницы после и page-break-inside помогает определить, как документ должен вести себя при печати.
Примечание: Вы не можете использовать это свойство для пустого
Значение по умолчанию: | авто |
---|---|
Унаследовано: | № |
Анимируемое: | нет. Прочитать о animatable |
Версия: | CSS2 |
Синтаксис JavaScript: | объект .style.pageBreakAfter = «always» |
Поддержка браузера
Числа в таблице указывают первую версию браузера, полностью поддерживающую свойство.
Объект | |||||
---|---|---|---|---|---|
разрыв страницы после | 1,0 | 4,0 | 1,0 | 1,2 | 7.0 |
Примечание: Ни один из браузеров не поддерживает «избегай».
Примечание: Браузеры могут интерпретировать «левый» и «правый» как «всегда».
Синтаксис CSS
разрыва страницы после: авто | всегда | избегать | влево | вправо | начальное | наследование;
Стоимость недвижимости
Значение | Описание |
---|---|
авто | По умолчанию. Автоматический разрыв страницы |
всегда | Всегда вставляйте разрыв страницы после элемента |
избегать | Избегайте разрывов страницы после элемента (если возможно) |
слева | Вставить разрыв страницы после элемента, чтобы следующая страница была отформатирована как левая страница |
правый | Вставить разрыв страницы после элемента, чтобы следующая страница была отформатирована как правая страница |
начальный | Устанавливает для этого свойства значение по умолчанию.Читать про начальные |
наследовать | Наследует это свойство от своего родительского элемента. Читать про наследство |
Связанные страницы
СсылкаHTML DOM: pageBreakAfter свойство
CSS свойство разрыва страницы внутри
Пример
Избегайте разрывов страницы внутри элементов
и:@media print {
pre, blockquote {page-break-inside: escape;}
}
Определение и использование
Свойство
page-break-inside
устанавливает, следует ли избегать разрыва страницы внутри указанного элемента.Наконечник: Свойства: разрыв страницы до, разрыв страницы после и page-break-inside помогает определить, как документ должен вести себя при печати.
Примечание: Вы не можете использовать это свойство для абсолютно позиционированных элементов.
Значение по умолчанию: авто Унаследовано: № Анимируемое: нет. Прочитать о animatable Версия: CSS2 Синтаксис JavaScript: объект .style.pageBreakInside = "избегать"
Поддержка браузера
Числа в таблице указывают первую версию браузера, полностью поддерживающую свойство.
Объект разрыв страницы внутри 1,0 8,0 19,0 1,3 7.0
Синтаксис CSS
внутренний разрыв страницы: авто | избегать | начального | наследования;
Стоимость недвижимости
Значение Описание авто По умолчанию. Автоматические разрывы страниц избегать Избегайте разрывов страницы внутри элемента (если возможно) начальный Устанавливает для этого свойства значение по умолчанию.Читать про начальные наследовать Наследует это свойство от своего родительского элемента. Читать про наследство
Связанные страницы
СсылкаHTML DOM: pageBreakВнутренняя собственность
CSS свойство перехода страницы перед разрывом
Пример
Всегда вставляйте разрыв страницы перед элементом
:
@media print {
h2 {page-break-before: always;}
}
Определение и использование
Свойство
разрыв страницы перед
добавляет разрыв страницы перед указан элемент..Совет: Свойства: разрыв страницы до, разрыв страницы после и page-break-inside помогает определить, как документ должен вести себя при печати.
Примечание: Вы не можете использовать это свойство для пустого
или для абсолютно позиционированных элементов.
Значение по умолчанию: авто Унаследовано: № Анимируемое: нет.Прочитать о animatable Версия: CSS2 Синтаксис JavaScript: объект .style.pageBreakBefore = "always"
Поддержка браузера
Числа в таблице указывают первую версию браузера, полностью поддерживающую свойство.
Объект разрыв страницы перед 1.0 4,0 1,0 1,2 7,0 Примечание: Ни один из браузеров не поддерживает «избегай».
Примечание. Браузеры могут интерпретировать «левый» и «правый» как "всегда".
Синтаксис CSS
разрыв страницы до: авто | всегда | избегать | слева | справа | начальный | наследование;
Стоимость недвижимости
Значение Описание авто По умолчанию.Автоматические разрывы страниц всегда Всегда вставляйте разрыв страницы перед элементом избегать Избегайте разрыва страницы перед элементом (если возможно) слева Вставить разрыв страницы перед элементом, чтобы следующая страница была отформатирована как левая страница правый Вставить разрыв страницы перед элементом, чтобы следующая страница была отформатирована как правая страница начальный Устанавливает для этого свойства значение по умолчанию.Читать про начальные наследовать Наследует это свойство от своего родительского элемента. Читать про наследство
Связанные страницы
СсылкаHTML DOM: pageBreakBefore свойство
HTML DOM Style pageBreakAfter Свойство
❮ Объект стиля
Пример
Всегда устанавливайте разрыв страницы после каждого элемента
с помощью:
документ.getElementById ("нижний колонтитул"). style.pageBreakAfter = "always";
Попробуйте сами »
Определение и использование
Свойство pageBreakAfter устанавливает или возвращает поведение разрыва страницы после элемента (для печати или предварительного просмотра).
Примечание. Свойство pageBreakAfter не влияет на абсолютно позиционированные элементы. Разрыв страницы виден только при предварительном просмотре или при печати.
Поддержка браузера
Объект pageBreakAfter Есть Есть Есть Есть Есть
Синтаксис
Вернуть страницуBreakAfter свойство:
объект .style.pageBreakAfter
Установить свойство pageBreakAfter:
объект .style.pageBreakAfter = "auto | always | escape | emptystring | left | right | initial | inherit"
Стоимость недвижимости
Значение Описание авто При необходимости вставьте разрыв страницы после элемента. Это значение по умолчанию всегда Всегда вставляйте разрыв страницы после элемента избегать Избегайте разрывов страницы после элемента "" (пустая строка) Разрыв страницы не вставляется после элемента слева Вставьте один или два разрыва страницы после элемента, чтобы следующая страница считалась левой страницей правый Вставьте один или два разрыва страницы после элемента, чтобы следующая страница считалась правой страницей начальный Устанавливает для этого свойства значение по умолчанию.Читать про начальные наследовать Наследует это свойство от своего родительского элемента. Читать про наследство Технические детали
Значение по умолчанию: авто Возвращаемое значение: Строка, представляющая поведение разрыва страницы после элемента при печати Версия CSS CSS2
Связанные страницы
Ссылка CSS: свойство page-break-after
❮ Объект стиля
Как создавать страницы для печати с помощью CSS
Эта статья была обновлена в 2020 году, чтобы отразить последние передовые методы стилизации печати CSS.
В этой статье мы рассмотрим искусство создания удобных для печати веб-страниц с помощью CSS.
«Кто печатает веб-страницы?» Я слышу, как ты плачешь! Относительно небольшое количество страниц будет когда-либо воспроизведено на бумаге. Но подумайте:
- печать проездных или концертных билетов
- воспроизведение маршрута или расписания
- сохранение копии для чтения в автономном режиме
- доступ к информации в зоне с плохой связью
- использование данных в опасных или грязных условиях - например, на кухне или фабрике
- вывод черновиков содержимого для письменных аннотаций
- печать чеков для бухгалтерского учета
- предоставление документов инвалидам, которым трудно пользоваться экраном
- распечатывает страницу для вашего коллеги, который отказывается использовать эту новомодную ерунду об Интернете.
К сожалению, печать страниц может быть неприятным занятием:
- текст может быть слишком маленьким, слишком большим или слишком бледным
Столбцы- могут быть слишком узкими, слишком широкими или выходить за пределы полей страницы
- разделов могут быть обрезаны или полностью исчезнуть
- чернил расходуется на ненужный цветной фон и изображения
- URL ссылок не видны
Распечатано- значков, меню и рекламных объявлений, на которые невозможно щелкнуть!
Многие разработчики выступают за доступность Интернета, но немногие не забывают сделать его доступным для печати!
Преобразование отзывчивого непрерывного носителя в листовую бумагу любого размера и ориентации может оказаться сложной задачей.Однако управление печатью с помощью CSS стало возможным уже много лет, а базовую таблицу стилей можно создать за несколько часов. В следующих разделах описаны хорошо поддерживаемые и практичные варианты создания удобных для печати страниц.
Таблицы стилей печати
Печать CSS может быть:
- Применяется в дополнение к стилю экрана. Взяв за основу ваши стили экрана, стили принтера при необходимости отменяют эти настройки по умолчанию.
- Применяются отдельными стилями. Стили экрана и печати полностью разделены; оба начинаются со стилей браузера по умолчанию.
Выбор будет зависеть от вашего сайта / приложения. Лично я большую часть времени использую стили экрана в качестве основы для печати. Тем не менее, я использовал отдельные таблицы стилей для приложений с радикально разными выходами - таких как система бронирования сеансов конференции, которая отображала сетку расписания на экране, но хронологическое расписание на бумаге.
Таблицу стилей печати можно добавить в HTML
после стандартной таблицы стилей:
Стили
print.css
будут применены в дополнении к стилям экрана при печати страницы.Чтобы разделить экран и печатные носители,
main.css
должен нацеливаться только на экран:
В качестве альтернативы стили печати можно включить в существующий файл CSS с помощью правил
@media
.Например:тело { маржа: 2em; цвет: #fff; цвет фона: # 000; } @media print { тело { маржа: 0; цвет: # 000; цвет фона: #fff; } }
Можно добавить любое количество правил
@media print
, так что это может быть удобно для хранения связанных стилей вместе. При необходимости правила экрана и печати также можно разделить:@media screen { тело { маржа: 2em; цвет: #fff; цвет фона: # 000; } } @media print { тело { маржа: 0; цвет: # 000; цвет фона: #fff; } }
Тестирование вывода на принтер
Нет необходимости убивать деревья и использовать невероятно дорогие чернила каждый раз, когда вы хотите протестировать макет печати! Следующие параметры воспроизводят стили печати на экране.
Предварительный просмотр
Самый надежный вариант - предварительный просмотр печати в вашем браузере. Это показывает, как будут обрабатываться разрывы страниц с использованием размера бумаги по умолчанию.
Кроме того, вы можете сохранить или предварительно просмотреть страницу, экспортировав ее в PDF.
Инструменты разработчика
DevTools ( F12 или Cmd / Ctrl + Shift + I ) может эмулировать стили печати, хотя разрывы страниц не отображаются.
В Chrome откройте Инструменты разработчика и выберите Дополнительные инструменты , затем Рендеринг в меню трехточечного значка в правом верхнем углу.Измените Emulate CSS Media на print внизу этой панели.
В Firefox откройте Инструменты разработчика и щелкните значок Toggle моделирование печатного носителя на панели стилей вкладки Inspector :
Взломайте свой медиа-атрибут
Предполагая, что вы используете тег
для загрузки CSS принтера, вы можете временно изменить атрибут
media
наscreen
:
Опять же, разрывы страниц не отображаются. Не забудьте восстановить для атрибута значение
media = "print"
после завершения тестирования.Удалить ненужные разделы
Прежде чем делать что-либо еще, удалите и сверните избыточное содержимое с помощью
display: none;
. Типичные ненужные разделы на бумаге могут включать в себя меню навигации, главные изображения, заголовки, нижние колонтитулы, формы, боковые панели, виджеты социальных сетей и рекламные блоки (обычно что-либо в iframe):
верхний колонтитул, нижний колонтитул, в сторону, навигация, форма, iframe,.menu, .hero, .adslot { дисплей: нет; }
Может потребоваться использовать
display: none! Important;
, если функции CSS или JavaScript показывают элементы в соответствии с определенными состояниями пользовательского интерфейса. Использование! Important
обычно не рекомендуется, но мы можем оправдать его использование в базовом наборе стилей принтера, которые переопределяют настройки экрана по умолчанию.Линеаризация макета
Мне больно это говорить, но Flexbox и Grid редко хорошо сочетаются с макетами принтера в любом браузере.Если у вас возникнут проблемы, рассмотрите возможность использования
display: block;
или аналогичный на блоках макетов и при необходимости отрегулируйте размеры. Например, установитеwidth: 100%;
, чтобы охватить всю ширину страницы.Стиль принтера
Теперь можно применять стили для печати. Рекомендации:
- убедитесь, что вы используете темный текст на белом фоне
- рассмотрите возможность использования шрифта с засечками, который может быть легче читать
- отрегулируйте размер текста до
12pt
или выше- при необходимости измените отступы и поля.Стандартные
см
,мм
илив единицах
могут быть более практичными.Дополнительные предложения включают…
Принять столбцы CSS
Стандартная бумага формата A4 и US Letter может приводить к получению более длинных и менее читаемых строк текста. Рассмотрите возможность использования столбцов CSS в макетах печати. Например:
статья { ширина столбца: 17em; столбец-пробел: 3em; }
В этом примере столбцы будут созданы при наличии не менее
37em
горизонтального пространства.Нет необходимости устанавливать медиа-запросы; дополнительные столбцы будут добавлены на более широкой бумаге.Использовать границы вместо цветов фона
В вашем шаблоне могут быть разделы или поля выноски, обозначенные более темными или инвертированными цветовыми схемами:
Экономьте чернила, представляя эти элементы рамкой:
Удалить или инвертировать изображения
Пользователи не захотят печатать декоративные и второстепенные изображения и фоны. Вы можете рассмотреть вариант по умолчанию, когда все изображения скрыты, если у них нет
* { фоновое изображение: нет! важно; } img, svg { дисплей: нет! важно; } img.print, svg.print { дисплей: блок; максимальная ширина: 100%; }
В идеале в печатных изображениях должны использоваться темные цвета на светлом фоне. Можно изменить цвета SVG, встроенного в HTML, в CSS, но будут ситуации, когда у вас будут более темные растровые изображения:
Фильтр CSS можно использовать для инвертирования и настройки цветов в таблице стилей печати. Например:
img.dark { фильтр: инвертировать (100%) оттенок-поворот (180 градусов) яркость (120%) контраст (150%); }
Результат:
Добавить дополнительный контент
Печатные носители часто требуют дополнительной информации, которая не требуется на экране.Свойство содержимого CSS
.можно использовать для добавления текста к псевдоэлементам
:: before
и:: after
. Например, укажите URL ссылки в скобках после текста:a :: after { содержание: "(" attr (href) ")"; }
Или вы можете добавить сообщения только для печати:
main :: after { содержание: «Авторские права site.com»; дисплей: блок; выравнивание текста: центр; }
Для более сложных ситуаций рассмотрите возможность использования класса
Статья напечатана в 13:23 5 сентября 2020 г. Последнюю версию можно найти на странице https://site.com/.
CSS:
.Распечатать { дисплей: нет; } @media print { .Распечатать { дисплей: блок; } }
Примечание. Большинство браузеров отображают URL-адрес и текущую дату / время в верхнем и / или нижнем колонтитуле напечатанной страницы, поэтому редко возникает необходимость генерировать эту информацию в коде.
Разрывы страниц
Свойства CSS3
break-before
иbreak-after
позволяют вам контролировать поведение разрывов страниц, столбцов или областей до и после элемента.Поддержка отличная, но старые браузеры могут использовать аналогичные свойстваpage-break-before
иpage-break-after
.Могут использоваться следующие значения
обрыв до
иобрыв после
:
auto
: по умолчанию - перерыв разрешен, но не принудительноизбегать
: избегать разрывов страницы, столбца или областиизбегайте страниц
: избегайте разрывов страницстраница
: принудительный разрыв страницывсегда
: псевдонимстраница
слева
: принудительный разрыв страницы, чтобы следующая была левая страницасправа
: принудительно разрывать страницу, чтобы следующая была праваяПример: принудительный разрыв страницы непосредственно перед любым заголовком
:
h2 { break-before: всегда; }
Примечание: будьте осторожны с чрезмерным использованием разрывов страниц.В идеале при выводе на принтер следует использовать как можно меньше страниц.
Свойство
break-inside
(и более раннееpage-break-inside
) указывает, разрешен ли разрыв страницы внутри элемента. Обычно поддерживаемые значения:
auto
: по умолчанию - перерыв разрешен, но не принудительноизбегать
: избегать внутреннего разрыва, где это возможноизбегайте страниц
: избегайте внутренних разрывов страницы, где это возможноЭто может быть предпочтительнее указания разрывов страниц, поскольку вы можете использовать как можно меньше бумаги, избегая разрывов страниц в сгруппированных данных, таких как таблицы или изображения:
table, img, svg { взлом внутрь: избегать; }
Свойство
widows
определяет минимальное количество строк в блоке, которое должно отображаться на верхних страницах.Представьте себе блок с пятью строками текста. Браузер хочет сделать разрыв страницы после четвертой строки, чтобы последняя строка отображалась вверху следующей страницы. Установкавдов: 3;
прерывается на второй строке или перед ней, поэтому на следующую страницу переносятся не менее трех строк.Свойство
orphans
аналогичноwidows
, за исключением того, что оно управляет минимальным количеством строк, отображаемых в нижней части страницы.Свойство
box-decoration-break
управляет границами элементов на страницах.Когда у элемента с рамкой есть внутренний разрыв страницы:
срез
: по умолчанию, разбивает макет. Верхняя граница отображается на первой странице, а нижняя граница отображается на второй странице.clone
: копирует поле, заполнение и границу. Все четыре границы показаны на обеих страницах.Наконец, CSS Paged Media (
@page
) имеет ограниченную поддержку браузера, но предоставляет способ нацеливания на определенные страницы, поэтому можно определить альтернативные поля или разрывы:@страница { запас: 2см; } @page: first { край-верх: 6см; } @page: left { поле справа: 4 см; } @page: right { поле слева: 4 см; }
Свойства разрыва страницы CSS могут быть помещены в ваш экран
.
илиИмейте в виду, что контроль разрыва страницы - это не более чем предложение для браузера. Нет никакой гарантии, что разрыв будет принудительным или предотвращенным, поскольку макет ограничен рамками бумаги.
Краски для печати
Контроль над печатными веб-носителями всегда будет ограничен, и результаты могут отличаться в зависимости от браузера. Тем не менее:
- удобные для печати таблицы стилей могут быть адаптированы к любому сайту
- большинство стилей принтера будут работать в большинстве браузеров
Стили печати- не повлияют на существующую функциональность и не нарушат ее
- затраты на разработку минимальны.
Добавление нескольких разрывов страниц и удаление ненужных разделов порадует пользователей и поднимет ваш сайт над конкурентами. Добавьте его в свой список дел!
Для более углубленных знаний CSS прочтите нашу книгу CSS Master, 2nd Edition.
Как применить CSS-разрыв страницы для печати таблицы с большим количеством строк?
При печати таблицы с большим количеством строк может возникнуть проблема с сохранением данных вместе, когда страница заканчивается. Поскольку данные, представленные постоянно, имеют больше смысла.Здесь мы будем отслеживать способы, которыми можно распечатать содержимое таблицы с большим количеством строк, когда возникает ситуация разрыва страницы.
Наиболее логичным свойством, которое можно использовать для этой цели, является разрыв страницы в CSS.
разрыв страницы в CSS
Это свойство CSS, которое помогает определить, как элементы на странице будут выглядеть при печати. Это делает печать документа более похожей на книгу.
page-break не используется напрямую, но содержит три свойства, которые можно использовать в соответствии с требованиями:
- page-break-before : добавляет разрыв страницы перед элементом
- page-break-after : добавляет разрыв страницы после элемента.
- page-break-inside : устанавливает, следует ли избегать разрыва страницы внутри элемента.
Синтаксис:
name_of_the_element {name_of_the_property: value;}Пример:
table {page-break-before: always;}Здесь name_of_the_element page требуется на. (например, таблица)
имя_свойства относится к свойству, которое требуется для применения к элементу. (например, page-break-before) значение
определяет, как данное свойство должно вести себя при печати документа.(например, всегда)Его можно применять где угодно, внутри таблицы, до или после таблицы, до или после строки, и даже внутри строки. Но они должны применяться так, чтобы форматированный вывод имел смысл в бумажной копии.
Следующие программы помогут вам лучше понять. Их результат можно увидеть только в распечатанном виде, при этом PDF-файл был прикреплен.
Программа 1: программа, которая берет новую страницу при запуске таблицы
<
html
>
<
head
>
<
заголовок
>
заголовок
>
<
стиль
тип
=
"text / css"
>
таблица {page-break-before: always;}
style
>
head
>
<
body
>
привет от Geeksforgeeks
<
таблица
>
900 16
<
tr
>
<
th
> s.номер
th
>
<
th
> наименование
th
>
tr
>
<
tr
>
<
td
> 1
td
>
<
td
> яблоко
td
>
tr
>
<
tr
>
<
td
> 2
td
>
<
td
> mango
td
>
tr
>
таблица
>
корпус
>
html
>
Вывод:
page1:page2:
Программа 2: программа , которая берет новую страницу при запуске таблицы и когда новая страница требуется при печати ряды, но не между рядами.
<
html
>
<
голова
>
<
<название
title
>
<
style
type
=
"text / css"
>
table {page-break-before: always;
font-size: 100px;}
tr {page-break-inside: избежать;
разрыв страницы после: авто;}
стиль
>
головка
>
<
корпус
>
привет от Geeksforgeeks
<
таблица
>
<
tr
>
> с.номер
th
>
<
th
> наименование
th
>
tr
>
<
tr
>
<
td
> 1
td
>
<
td
> яблоко
td
>
tr
>
<
tr
>
<
td
> 2
td
>
<
td
> mango
td
>
tr
>
<
tr
>
<
td
> 3
td
>
<
td
> киви
td
>
tr
>
<
tr
>
<
td
> 4
td
>
<
td
> банан
td
>
tr
>
<
tr
>
<
td
> 5
td
>
<
td
> клубника
td
>
tr
>
<
tr
>
<
td
> 6
td
>
<
td
> гуава
td
>
tr
>
<
tr
>
<
td
> 7
td
>
<
9001 6 тд> арбуз
тд
>
tr
>
таблица
>
корпус
>
html
>
Выход:
стр.1:стр.2:
02 стр. эти выходные данные будут сгенерированы при печати, выходные данные, прикрепленные выше, представляют собой скриншоты предварительного просмотра печати.
Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью курса DSA Self Paced Course по приемлемой для студентов цене и будьте готовы к работе в отрасли.
Как обрабатывать разрывы страниц при печати большой HTML-таблицы
- Фрагменты
- ›
- HTML
- ›
- Как обрабатывать разрывы страниц при печати большой HTML-таблицы
Решение с разрывом страницы CSS- inside property¶
Прочтите наш фрагмент, если вам нужно распечатать таблицу HTML с большим количеством строк на нескольких страницах.Для этого вам понадобится свойство CSS page-break-inside, которое помогает указать, как документ должен вести себя при печати.
Пример обработки разрывов страниц при печати большой таблицы: ¶
Попробуйте сами »
Название документа <стиль> Таблица { разрыв страницы внутрь: авто; } tr { разрыв страницы внутрь: избегать; разрыв страницы после: авто; } thead { отображение: таблица-заголовок-группа; } tfoot { дисплей: таблица-нижний колонтитул-группа; } <таблица><фут> заголовок примечания 1 2 3 В нашем примере мы установили для свойства page-break-inside значение« auto »для элемента
и использовали значение« escape »для элемента
.