Spec-Zone.ru › CSS

@page

Ограниченная доступность

Эта функция не является базовой, так как она не работает во всех широко используемых браузерах.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Правило @page — это правило CSS, используемое для изменения различных аспектов печатных страниц. Оно нацелено на изменение размеров, ориентации и полей страницы.

Правило @page может использоваться для нацеливания на все страницы в печати или на подмножество страниц с использованием различных псевдоклассов.

Синтаксис

/* Targets all the pages */
@page {
  size: 8.5in 9in;
  margin-top: 4in;
}

/* Targets all even-numbered pages */
@page :left {
  margin-top: 4in;
}

/* Targets all odd-numbered pages */
@page :right {
  size: 11in;
  margin-top: 4in;
}

/* Targets all selectors with `page: wide;` set */
@page wide {
  size: a4 landscape;
}

@page {
  /* margin box at top right showing page number */
  @top-right {
    content: "Page " counter(pageNumber);
  }
}

Свойства страницы

Правило @page может содержать только описания страниц и правила полей правила полей. Следующие описания поддерживаются по крайней мере одним браузером:

margin

Устанавливает поля страницы. Отдельные свойства полей margin-top, margin-right, margin-bottom и margin-left также могут быть использованы.

page-orientation

Устанавливает ориентацию страницы. Это не влияет на расположение элементов на странице; поворот применяется после макета в выходном средстве.

size

Устанавливает целевой размер и ориентацию страницы, определяющей область. В общем случае, когда один элемент страницы отображается на одном листе бумаги, он также указывает размер целевого листа.

Спецификация упоминает следующие свойства CSS, которые должны применяться к блокам страниц с помощью правила @page. Однако они не поддерживаются ни одним пользовательским агентом пока.

Остальные свойства страницы
Функция Свойства CSS
Свойства bidi direction
Свойства фона background-color
background-image
background-repeat
background-attachment
background-position
background
Свойства рамки border-top-width
border-right-width
border-bottom-width
border-left-width
border-width
border-top-color
border-right-color
border-bottom-color
border-left-color
border-color
border-top-style
border-right-style
border-bottom-style
border-left-style
border-short-style
border-top
border-right
border-bottom
border-left
border
Свойства счетчиков counter-reset
counter-increment
Цвет color
Свойства шрифта font-family
font-size
font-style
font-variant
font-weight
font
Свойства высоты height
min-height
max-height
Высота строки line-height
Свойства полей margin-top
margin-right
margin-bottom
margin-left
margin
Свойства контура outline-width
outline-style
outline-color
outline
Свойства отступа padding-top
padding-right
padding-bottom
padding-left
padding
Кавычки quotes
Свойства текста letter-spacing
text-align
text-decoration
text-indent
text-transform
white-space
word-spacing
Видимость visibility
Свойства ширины width
min-width
max-width

Описание

Правило @page определяет свойства блока страницы. К правилу @page можно получить доступ через интерфейс модели CSS CSSPageRule.

Примечание: W3C обсуждает, как обрабатывать единицы <length>, связанные с viewport, vh, vw, vmin, и vmax. Пока не используйте их в правиле @page.

Связанные свойства

Правило @page позволяет пользователю назначить имя правилу, которое затем вызывается в объявлении с помощью свойства page.

page

Позволяет селектору использовать пользовательскую именованную страницу

Формальный синтаксис

@page = 
@page <page-selector-list>? { <declaration-rule-list> }

<page-selector-list> =
<page-selector>#

<page-selector> =
[ <ident-token>? <pseudo-page>* ]!

<pseudo-page> =
':' [ left | right | first | blank ]

Где <page-body> включает:

  • page-properties
  • page-margin properties

и <pseudo-page> представляет следующие псевдоклассы:

  • :blank
  • :first
  • :left
  • :right

Правила полей

Предупреждение: Правила полей не реализованы ни одним пользовательским агентом (обновлено: август 2023 г.).

Правила полей используются внутри правила @page. Они каждый нацелены на разные разделы печатной страницы, стилизуя область печатной страницы в соответствии со значениями свойств, заданными в блоке стиля:

@page {
  @top-left {
    /* page-margin-properties */
  }
}

@top-left нацелен на верхний левый угол документа и применяет изменения, основанные на свойствах page-margin.

Другие правила полей включают:

@top-left-corner
@top-left
@top-center
@top-right
@top-right-corner
@bottom-left-corner
@bottom-left
@bottom-center
@bottom-right
@bottom-right-corner
@left-top
@left-middle
@left-bottom
@right-top
@right-middle
@right-bottom
END_OF_DOCUMENT_MARKER

Свойства отступа страницы

Свойства отступа страницы — это набор свойств CSS, которые можно задать в любом отдельном правиле margin. Они включают:

Свойства отступа страницы
Функция Свойства CSS
свойства bidi direction
свойства фона background-color
background-image
background-repeat
background-attachment
background-position
background
свойства границы border-top-width
border-right-width
border-bottom-width
border-left-width
border-width
border-top-color
border-right-color
border-bottom-color
border-left-color
border-color
border-top-style
border-right-style
border-bottom-style
border-left-style
border-short-style
border-top
border-right
border-bottom
border-left
border
свойства счётчиков counter-reset
counter-increment
содержимое content
цвет color
свойства шрифта font-family
font-size
font-style
font-variant
font-weight
font
свойства высоты height
min-height
max-height
высота строки line-height
свойства отступа margin-top
margin-right
margin-bottom
margin-left
margin
свойства контура outline-width
outline-style
outline-color
outline
свойства отступа padding-top
padding-right
padding-bottom
padding-left
padding
кавычки quotes
свойства текста letter-spacing
text-align
text-decoration
text-indent
text-transform
white-space
word-spacing
вертикальное выравнивание vertical-align
видимость visibility
свойства ширины width
min-width
max-width
z-индекс z-index

Именованные страницы

Именованные страницы позволяют выполнять макетирование на странице и добавлять разрывы страниц в режиме объявления при печати.

Именованные страницы можно применить, используя свойство page. Это позволяет пользователю создавать различные конфигурации страниц для использования в макетах печати.

Пример этого можно найти в примерах page.

Примеры

Использование свойства size для изменения ориентации страницы

Этот пример демонстрирует, как разделить <section> на отдельные страницы в формате landscape, при этом каждая страница имеет отступ 20% при печати.

HTML

<button>Print Webpage</button>
<article>
  <section>
    <h2>Header</h2>
    <p>
      Lorem ipsum dolor, sit amet consectetur adipisicing elit. Consequatur
      facilis vitae voluptatibus odio consequuntur optio placeat? Id, nam sequi
      aut in dolorem dolores, laudantium, quasi totam ipsam aliquam quibusdam
      velit.
    </p>
  </section>
  <section>
    <h2>Header</h2>
    <p>
      Lorem ipsum dolor, sit amet consectetur adipisicing elit. Consequatur
      facilis vitae voluptatibus odio consequuntur optio placeat? Id, nam sequi
      aut in dolorem dolores, laudantium, quasi totam ipsam aliquam quibusdam
      velit.
    </p>
  </section>
  <section>
    <h2>Header</h2>
    <p>
      Lorem ipsum dolor, sit amet consectetur adipisicing elit. Consequatur
      facilis vitae voluptatibus odio consequuntur optio placeat? Id, nam sequi
      aut in dolorem dolores, laudantium, quasi totam ipsam aliquam quibusdam
      velit.
    </p>
  </section>
</article>

CSS

@page {
  size: landscape;
  margin: 20%;
}

section {
  page-break-after: always;
  break-after: page;
}

@media print {
  button {
    display: none;
  }
}

JavaScript

const button = document.querySelector("button");

button.addEventListener("click", () => {
  window.print();
});

Результат

Нажатие кнопки печати запустит диалоговое окно печати с разделением разделов html на отдельные страницы.

Примеры псевдоклассов @page

Обратитесь к различным псевдоклассам @page для примеров.

  • :blank
  • :first
  • :left
  • :right

Спецификации

Спецификация
CSS Paged Media Module Level 3
# at-page-rule
CSS Logical Properties and Values Level 1
# page

Совместимость с браузерами

Настольный Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet WebView Android
@page 2 12 19 6 18.2 18 19 14 18.2 1.0 37
bottom-center 131 Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет
bottom-left 131 Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет
bottom-left-corner 131 Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет
bottom-right 131 Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет
bottom-right-corner 131 Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет
left-bottom 131 Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет
left-middle 131 Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет
left-top 131 Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет
page-orientation 85 85 предварительная версия 71 Нет 85 Нет 60 Нет 14.0 85
right-bottom 131 Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет
right-middle 131 Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет
right-top 131 Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет
size 15 79 95 15 18.2 18 95 14 18.2 1.5 37
top-center 131 Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет
top-left 131 Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет
top-left-corner 131 Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет
top-right 131 Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет
top-right-corner 131 Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет

См. также

  • Дескриптор @page size
  • Свойство page
  • См. тикет [META] CSS Paged Media Module Level 3 в Bugzilla для отслеживания прогресса по теме (счётчики на основе страниц и т.д.)
  • Модуль CSS paged media
  • Paged.js: полифилл для W3C paged media

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/@page

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API