CSSはHTML文書の表現方法を指定する標準のスタイルシートであり、以下の構造をもっています。
セレクタ {プロパティ:値}
本稿では印刷のプロパティを解説します。
印刷関係のプロパティは@page宣言として設定できます。
CSSではページボックスという考え方があり、印刷される1ページをひとつのボックスとして捉えることができます。このページボックスはHTMLには現れないものですから、印刷のプロパティは通常のセレクタでは設定できません。そこで@pageが用いられるわけです。
@page
{size:16.2cm 23.7cm; /* ページボックスの大きさと向き */
marks:crop cross; /* トンボ */}
@page:first
{margin:2em; /* 余白 */}
@page:left
{margin:2em 2em 2em 0; /* 余白 */}
@page:right
{margin:2em 0 2em 2em; /* 余白 */}
「:first」「:left」「:right」という専用の3つの擬似クラスが用意されており、最初のページ、左側のページ、右側のページの印刷設定をそれぞれ指定できます。また@page宣言には名前をつけることができ、その設定を特定の要素の印刷設定として用いることが可能です。
@page yoko
{size:landscape;}
table
{page:yoko;}
sizeプロパティはページボックスの大きさと向きを設定します。設定値は実数値+単位,keyword(auto,portrait,landscape)です。
| 適用要素 | 値 | 初期値 | 継承 |
|---|---|---|---|
| @page宣言 | 実数値+単位,keyword | auto | -- |
page-break-before,page-break-afterプロパティは、それぞれ指定要素の前後における改ページを設定します。設定値はkeyword(auto,always,avoid,left,right)です。
| 適用要素 | 値 | 初期値 | 継承 |
|---|---|---|---|
| ブロックレベル要素 | keyword | auto | no |
page-break-nsideプロパティは、指定要素内の改ページを設定します。設定値はkeyword(auto,avoid)です。
| 適用要素 | 値 | 初期値 | 継承 |
|---|---|---|---|
| ブロックレベル要素 | keyword | auto | no |
widows,orphansプロパティは、指定要素内における中途半端な改ページの禁止を設定します。設定値は整数値です。
| 適用要素 | 値 | 初期値 | 継承 |
|---|---|---|---|
| ブロックレベル要素 | 整数値 | 2 | no |
marksプロパティは、トンボ(断ち切り線)の出力を設定します。設定値はkeyword(crop,cross,none)です。
| 適用要素 | 値 | 初期値 | 継承 |
|---|---|---|---|
| @page宣言 | keyword | none | no |