@page

@page は CSS のアット規則で、文書を印刷するときに一部の CSS プロパティを変更するために使用します。

構文

@page {
  margin: 1cm;
}

@page :first {
  margin: 2cm;
}

記述子

size
対象となるページボックスの包含ブロックの寸法と向きを指定します。一般的な場合、1つのページボックスが1枚の用紙に印刷され、対象となる用紙の寸法を示します。
marks
クロップや登録マークを文書に追加します。
bleed
ページのレンダリングがクリップされた場合の、ページボックス間の距離を示します。

解説

@page ですべての CSS プロパティを変更できるわけではありません。変更できるのは、 margin, orphans, widows と、文書のページ区切りだけです。これ以外の CSS プロパティを変えようとしても、無視されます。

@page アット規則は、 CSS オブジェクトモデルインターフェイス CSSPageRule からアクセスできます。

注: W3C は、ビューポートに関する <length> の単位、 vh, vw, vmin, vmax の取り扱い方について議論中です。差し当たっては、これらを @page アット規則の中で使わないでください。

形式文法

@page <page-selector-list> {
  <page-body>
}

ここで
<page-selector-list> = [ <page-selector># ]?
<page-body> = <declaration>? [ ; <page-body> ]? | <page-margin-box> <page-body>

ここで
<page-selector> = <pseudo-page>+ | <ident> <pseudo-page>*
<page-margin-box> = <page-margin-box-type> '{' <declaration-list> '}'

ここで
<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

@page 擬似クラスの例

@page の さまざまな擬似クラスのページにある例を参照してください。

  • :blank
  • :first
  • :left
  • :right
  • :recto これは実験段階の API です。製品内のコードで使用しないようご注意ください。
  • :verso これは実験段階の API です。製品内のコードで使用しないようご注意ください。

仕様書

仕様書 状態 備考
CSS Logical Properties and Values Level 1
:recto and :verso の定義
編集者草案 :recto 及び :verso ページセレクターを追加
CSS Paged Media Module Level 3
@page の定義
草案 CSS Level 2 (Revision 1) から変更はないが、 @page 内でより多くの@規則が利用できるようになった。
CSS Level 2 (Revision 1)
@page の定義
勧告 初回定義

ブラウザーの互換性

BCD tables only load in the browser

関連情報