@page
The @page
CSS at-rule is used to modify some CSS properties when printing a document.
Syntax
@page {
margin: 1cm;
}
@page :first {
margin: 2cm;
}
Descriptors
size
-
Specifies the target size and orientation of the page box's containing block. In the general case, where one page box is rendered onto one page sheet, it also indicates the size of the destination page sheet.
Description
You can't change all CSS properties with @page
. You can only change the margins, orphans, widows, and page breaks of the document. Attempts to change any other CSS properties will be ignored.
The @page
at-rule can be accessed via the CSS object model interface CSSPageRule
.
Note: The W3C is discussing how to handle viewport-related <length>
units, vh
, vw
, vmin
, and vmax
. Meanwhile do not use them within a @page
at-rule.
Formal syntax
@page <page-selector-list> { <page-body> }where
<page-selector-list> = [ <page-selector># ]?
<page-body> = <declaration>? [ ; <page-body> ]? | <page-margin-box> <page-body>where
<page-selector> = <pseudo-page>+ | <ident> <pseudo-page>*
<page-margin-box> = <page-margin-box-type> '{' <declaration-list> '}'where
<pseudo-page> = : [ left | right | first | blank ]
<page-margin-box-type> = @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
Examples
@page pseudo-class examples
Please refer to the various pseudo-classes of @page
for examples.
Specifications
Specification |
---|
CSS Logical Properties and Values Level 1 # page |
Browser compatibility
BCD tables only load in the browser
See also
- See the [META] CSS Paged Media Module Level 3 ticket in Bugzilla for tracking progress on the subject (page-based counters, etc.)