Печать документа в CSS
http://belarusweb.net
Основы создания сайтов

Печать документа

css-свойство orphans

Иногда пользователям приходится распечатывать интернет-страницы на бумажные носители, в результате чего возникает необходимость определения дополнительных параметров распечатываемых страниц, например, тех же отступов, которые можно определить при помощи рассмотренного выше правила @page. Рассмотрим остальные свойства, предназначенные для форматирования распечатываемых веб-страниц.

Для того, чтобы задать минимальное количество строк блочного элемента, которые должны остаться при печати документа на предыдущей странице в случае переноса части содержимого блочного элемента на следующую страницу из-за нехватки места на текущем листе бумаги, используется наследуемое свойство orphans, которое имеет эффект, только если текст расположен на двух и более страницах (см. пример 6.4). В качестве значений свойство принимает только целые положительные числа, указывающие минимальное количество строк разрываемого блочного элемента, которые должны остаться внизу предыдущей распечатываемой веб-страницы (остальные разрешается переносить на следующую страницу). По умолчанию используется число 2. При этом, если, например, в абзаце содержится восемь строк, но только три из них помещаются на предыдущей странице, а значение свойства orphans требует наличия на предыдущей странице как минимум четырех строк, браузер при распечатке или предварительном просмотре перенесет все содержимое блочного элемента на следующую страницу.

/* Определяем параметры печати документа */
	@media print{
		p{
		orphans: 3;
		widows: 3;
   		color: black;
		font-family: Times, "Times New Roman", serif;
		}
		
		/* Запрещаем разрывы страницы до, внутри и после 
		абзацев, у которых атрибут class="no_break"	 */
		p.no_break{
		page-break-before: avoid;
		page-break-after: avoid;
		page-break-inside: avoid;
		}
	}

Пример 6.4. Определение параметров печати веб-страниц

css-свойство widows

В отличие от orphans, наследуемое свойство widows задает минимальное количество строк блочного элемента, которые должны быть перенесены на следующую страницу при печати документа в случае нехватки места для печати содержимого данного блочного элемента на текущем листе бумаги. Опять же, свойство имеет эффект, если текст расположен на двух и более страницах. В качестве значений свойство принимает только целые положительные числа, указывающие минимальное количество строк разрываемого блочного элемента, которые должны быть перенесены браузером на следующую распечатываемую веб-страницу. По умолчанию используется число 2. При этом, если, например, в абзаце содержится восемь строк, четыре из которых помещаются на предыдущей странице, а значение свойства widows требует переноса на следующую страницу как минимум пяти строк, браузер при распечатке или предварительном просмотре оставит на предыдущей странице только три строки, а пять строк перенесет на следующую страницу. Если же значение свойства widows требует переноса на следующую страницу как минимум девяти строк, браузер при распечатке или предварительном просмотре перенесет все содержимое блочного элемента на следующую страницу.

Свойства применяются только к блочным элементам. Браузер Firefox не поддерживает оба свойства. Кроме того, когда значение свойства widows конфликтует со значением свойства orphans, браузеры Opera и Chrome оставляют на предыдущей странице количество строк, указанное в качестве значения свойства orphans, а остальные строки переносят на новую строку, чтобы максимально выполнить запросы свойства widows.

css-свойства page-break-before и page-break-after

Для управления разрывами страницы до и после определяемых селектором блочных элементов используются ненаследуемые свойства page-break-before и page-break-after, которые могут принимать следующие значения:

  • auto – браузер будет вставлять разрыв страницы, соответственно, до и после определяемых селектором блочных элементов только в случае необходимости; значение используется браузером по умолчанию;
  • always – браузер будет всегда вставлять разрыв страницы, соответственно, до и после определяемых селектором блочных элементов;
  • avoid – браузер не будет вставлять разрыв страницы, соответственно, до и после определяемых селектором блочных элементов;
  • left – браузер будет всегда вставлять разрыв страницы, соответственно, до и после определяемых селектором блочных элементов таким образом, чтобы при распечатке или предварительном просмотре следующая левая (нечетная) страница оставалась пустой; значение поддерживается не всеми браузерами, поэтому пока что не следует его использовать;
  • right – браузер будет всегда вставлять разрыв страницы, соответственно, до и после определяемых селектором блочных элементов таким образом, чтобы при распечатке или предварительном просмотре следующая правая (четная) страница оставалась пустой; значение поддерживается не всеми браузерами, поэтому пока что не следует его использовать.

css-свойство page-break-inside

Для управления разрывами страницы внутри определяемых селектором блочных элементов используется ненаследуемое свойство page-break-inside, которое может принимать два значения:

  • auto – браузер будет вставлять разрыв страницы внутри определяемых селектором блочных элементов только в случае необходимости; значение используется браузером по умолчанию;
  • avoid – браузеру запрещается вставлять разрыв страницы внутри определяемых селектором блочных элементов.