この文書は、W3C の草案 (Working Draft)、"CSS Print Profile" (2006 年 10 月 13 日付) を独自に翻訳したものです。この仕様書の正式なものは W3C のサイトにある英語版であり、その著作権は W3C が保有しています。また、翻訳に誤りがある可能性に留意してください。参照の際は原文と対比することを推奨します。

なお、この文書の翻訳にあたり、JIS 標準情報 (TR) の「段階スタイルシート 水準2(CSS2)」を参考にしました。いくつかの個所では、引用も行っていますが、技術的内容を変えない範囲で記号や用語、言い回しを変更しています。

翻訳の最終更新日: 2006 年 11 月 6 日


W3C

CSS Print Profile

W3C 草案 2006 年 10 月 13 日

このバージョン:
http://www.w3.org/TR/2006/WD-css-print-20061013/
最新バージョン:
http://www.w3.org/TR/css-print/
前のバージョン:
http://www.w3.org/TR/2004/CR-css-print-20040225/
編集者:
Melinda Grant, Hewlett-Packard Company

概要

この仕様は、低価格デバイスへの印刷向けの、Cascading Style Sheets Level 2, revision 1 [CSS21] と CSS3 Module: Paged Media [PAGEMEDIA] のサブセットを定義するものです。プリンタ専用のドライバをインストールできない、あるいはインストールが望ましくないような状況での印刷や、出力に対する可変性が許容されるような状況向けに設計されています。

このプロファイルは、XHTML-Print [XHTMLPRINT] と関連して用いられるように設計されています。また最低限の準拠基準と共に、文字と画像、表と画像のcollectionの印刷時に強力なレイアウトの制御が出来るような、拡張仕様も定義しています。

この文書の位置付け

このセクションは、公開時点でのこの文書の位置付けについて述べたものです。他の文書がこの文書を置き換えることがあります。W3C が現在公開している勧告その他の技術文書の最新のものの一覧は、http://www.w3.org/TR/ の W3C 技術レポート索引にあります。

草案としての公開は、W3C メンバーシップによる保証が含まれているとは意味しません。これは草案の文書であり、いつでも他の文書により更新、置換、破棄される可能性があります。この文書を「未完成品」以外のものとして引用したりするのは不適切です。

この仕様に関する議論は、公開メーリングリストwww-style (アーカイブ) でするのが望ましいとされています (手続き参照)。電子メールを送信する際には、題名に “css-print” をつけて、次のようにすることが望ましいとされます: “[css-print] …コメントの概要…

この文書は、CSS ワーキンググループ (スタイルアクティビティの一環) より作成されました。

2004 年 2 月 5 日付けの W3C 特許ポリシーに基づいて作成されました。W3C はグループで提出された、公開特許情報一覧 を整備します。また、そのページは特許の公開方法についても述べられています。権利主張 (Essential Claims) が含まれていると確信している、特許に関する実際の知識を有している個人は、W3C 特許ポリシー第 6 節に基づき情報を公開せねばなりません。

この文書は CSS Print Profile W3C 最終草案 の 2006 年 10 月 16 日版です。最終草案 (Last Call) 期間は 2006 年 11 月 20 日までとなります。

前の勧告候補と比べて、このバージョンには 2 つの新機能 ('fit''fit-position') が加わり、XHTML-Print の変更を反映し、CSS3 Module: Paged Media との間での冗長な部分を削除し、その他明確化、編集の改良が施されています。

目次

1. 概論

この文書では参考と注釈されていない節すべてが規定とされます。

この文書は、Cascading Style Sheets, level 2, revision 1 (CSS 2.1) 仕様 [CSS21] に CSS3 Module: Paged Media [PAGEMEDIA] を加えたもののプロファイルを規定するものです。

CSS 2.1 では、複数の機器やメディアタイプで文書を表示できるスタイルシートを開発者が制作する方法を規定しています。これは非常に重要なことですが、それぞれの機器でどの機能がサポートされるかについて作成者 (author) が知ることも重要です。また、同じような機器は同じような方法で処理を行うことも重要です。さもないと、作成者は機器ごとに専用バージョンのスタイルシートを開発しなければならなくなっていたでしょう。その結果、コンテンツ開発のコストは上昇し、相互運用性が減少することになります。

CSS Print Profile は、プリンタ専用のドライバをインストールできない、あるいはインストールが望ましくないような環境での印刷のための、適合条件プロファイルを規定します。そのような環境の例としては、携帯電話からの低価格プリンタでの印刷のようなものが挙げられます。プロファイルはこのような場面で用いることができるような、プロパティ、値、セレクタ、カスケーディング規則の最小限のセットを決めています。このプロファイルは、ページ全体を保持するバッファを持たないかもしれない、大体上から下へと印刷するような、低価格プリンタ向けに、XHTML-Print [XHTMLPRINT] と関連して用いられるように設計されています。

このプロファイルにはまた、より厳格なページレイアウトや適応に対応した、高度なレイアウト拡張セットも含まれています。これらは、デジタルスチルカメラの画像のアルバムページや、印刷対応のテレビジョンのコンテンツのようなものが印刷できるよう、充分豊富な機能を提供します。

プロファイルへ適合するというのは、ユーザエージェントが 少なくともこの仕様で定義された機能をサポートしていることを表します。この点については、この後の 2 節、適合条件で説明しています。

2. 適合条件

本文書中の、「しなければならない (MUST) 」、「してはならない(MUST NOT) 」、「要求される、必須 (REQUIRED) 」、「望ましい (SHALL)」、「望ましくない (SHALL NOT) 」、「すべきである (SHOULD) 」、「推奨される (RECOMMENDED) 」、「しても良い (MAY) 」、および「任意 (OPTIONAL) 」と言ったキーワードは、 RFC 2119 ([RFC2119] 参照) で述べられているとおりに解釈されることとなっています。しかしながら、読みやすさのために、この仕様ではこれらの語は大文字で表記していません。訳註:本文書では大文字表記にしています。

プロファイルというものの主な役割は、機能群のサブセットを定義し、相互運用性について最小限の保証を行うことです。 CSS Print Profile の場合、ここでいう保証にあたるのは、適合するユーザエージェントが、CSS 2.1 の適合条件 ([CSS21] の 3.2 節) に従ってこの仕様で定義され、改められ、下記に要約された機能をサポートするということです。

  1. CSS Print Profile に適合するユーザエージェント (PP-UA、あるいはもっと単純に「プリンタ」) は、CSS 2.1 のメディアタイプ all および print をサポートしなければなりません (SHALL)。プリンタは、この他の CSS 2.1 メディアタイプについてもサポートすることができます (MAY)。
  2. プリンタは、各ソース文書について、関連づけられているスタイルシートのうち、サポートしているメディアタイプに合うものはすべて、取得しようとするものとします (SHALL)。ネットワーク接続の問題などでスタイルシートの取得に失敗した時は、プリンタは文書の処理を中断すべきではありません (SHOULD NOT)。
  3. プリンタはこの仕様に従ってスタイルシートの構文解析を行うものとします (SHALL)。具体的には、プリンタは、CSS Print Profile の @ 規則、ブロック、宣言、セレクタをすべて認識するものとします (SHALL)。プリンタは、サポートしているメディアタイプに適用されるプロパティを見つけたら、そのプロパティの定義に従って値を構文解析するものとします (SHALL)。すなわち、プリンタは、有効な値をすべて受け入れ (SHALL)、無効な値を含む宣言は無視することができます (MAY)。プリンタは、サポートしないメディアタイプに適用される規則を無視するものとします (SHALL)。
  4. 文書ツリーの各要素について、プリンタは、プロパティの定義ならびにカスケーディングおよび継承の規則に従って、適用可能なすべてのプロパティに値を与えるものとします (SHALL)。
  5. ソース文書に代替スタイルシート (HTML 4.01 [HTML4] でキーワード "alternate" が付いているものなど) が付けられている場合、プリンタはスタイルシートを無視することができます (MAY) し、実装系独自の方法で処理することもできます。

CSS 2.1 同様、この適合条件には付則があります。

  1. プリンタで必要とする場合 (REQUIRED) には、値を近似してもかまいません (MAY)。
  2. 特定の機器の制限 (例えば、プリンタが色をモノクロのページにレンダリングできない) のためにこの仕様の一部を実装できない場合には、適合しないとは言わないものとします (SHALL NOT)。

作成者は、この適合条件プロファイルを使って前方互換性を活用することが推奨されます (RECOMMENDED)。作成者は、カスケーディング規則が正しく処理されることや、未知のプロパティや値は無視されることを理解した上でスタイルプロパティを使うことができる (MAY) はずです。例を示します。

  body {
    background-position: center center;
    background-position: 45% 55%; 
  }
 

background-position プロパティでパーセント値を処理できるプリンタは、最初の background-position 指定を処理した後、2 つめの background-position 指定の値を上書きします。パーセント値を処理できないプリンタは、最初の background-position 指定を処理し、2 つめの background-position 指定は無視します。

2.1. 高度なレイアウト拡張の適合条件

最低限の適合条件を満たすプリンタより、より厳格なページレイアウトを必要とする印刷アプリケーションもあります (例えば、画像のアルバムページとか、デジタルテレビからのページ)。高度なレイアウト拡張 (Enhanced Layout Extension) には、適合条件を満たすプリンタがサポートしなければならない (MUST) のよりも多くのプロパティが、そしてその結果としてメモリと性能能力の要件も増強されます。追加された CSS 構造物には、下表のPrint-Enhanced 欄に、「必須 (MUST)」記されていたり、値の範囲が広がっています。

高度なレイアウト拡張をサポートするプリンタは更に、任意 (OPTIONAL) に、(この文書の範囲外の手段を経て) 見つけることができた、高度なレイアウト拡張と記されているものをサポートしても構いません (MAY)。

3. セレクタ

CSS 2.1 では、文書ツリー内の要素に適用されるスタイル規則を、パターンマッチ規則で決定します [CSS21]。

要素ごとにすべての属性を保存することができず、必要とされるいくつかのみを保持するような、低価格プリンタもあるかもしれないことを考慮しています。しかしながら、高度なレイアウト拡張に適合するプリンタは、属性セレクタをサポートする必要があります (MUST)。

次の表は、CSS Print Profile でのセレクタの構文をまとめたものです。 CSS Mobile Profile では、CSS Print 欄、CSS Print-Enhanced 欄に「MUST」と記されたセレクタに加えて、 CSS Print Profile には CSS 2.1 のグループ化機構 ([CSS21] 5.2.1 節を参照) も含まれます。

パターン 意味 セレクタの種類 CSS Print CSS Print-Enhanced
* あらゆる要素と一致する 汎用セレクタ 必須 (MUST) 必須 (MUST)
E あらゆる E 要素 (すなわち、型 E の要素) と一致する 型セレクタ 必須 (MUST) 必須 (MUST)
E F あらゆる F 要素のうち、E 要素の子孫であるものと一致する 子孫セレクタ 必須 (MUST) 必須 (MUST)
E > F あらゆる F 要素のうち、要素 E の子であるものと一致する 子セレクタ 必須 (MUST) 必須 (MUST)
E[foo] あらゆる E 要素のうち、"foo" 属性が設定されているもの (値は問わない) と一致する。 属性セレクタ 許容 (MAY) 必須 (MUST)
E[foo="warning"] あらゆる E 要素のうち、"foo" 属性の値が "warning" とちょうど等しいものと一致する。 属性セレクタ 許容 (MAY) 必須 (MUST)
E[foo~="warning"] あらゆる E 要素のうち、"foo" 属性の値がスペースで区切った値のリストで、その値のひとつが "warning" とちょうど等しいものと一致する。 属性セレクタ 許容 (MAY) 必須 (MUST)
E.classid div[class~="classid"] と同じ クラスセレクタ 必須 (MUST) 必須 (MUST)
E#myid あらゆる E 要素のうち、ID が "myid" に等しいものと一致する。 ID セレクタ 必須 (MUST) 必須 (MUST)
@page :first 文書の最初のページのスタイルを指定する ページの擬似クラス 必須 (MUST) 必須 (MUST)

3.1 @ 規則

次の表は、CSS Print Profile の @ 規則の文法をまとめたものです。

@ 規則 機能 CSS Print CSS Print-Enhanced
@import 外部スタイルシートをインポートする。 許容 (MAY) 必須 (MUST)
@charset スタイルシートの文字符号化の名前を指定する。 必須 (MUST) 必須 (MUST)
@media 1 あるいは複数の特定メディアに適用されるスタイル規則の集合のグループ化を行う。 必須 (MUST) 必須 (MUST)
@page (名前を付けることも可能な) ページボックスを指定する。 必須 (MUST) 必須 (MUST)
@bottom-left-corner, @bottom-left,
@bottom-center, @bottom-right, @bottom-right-corner
ページの下マージンの、フッタを配置する領域を指定する [PAGEMEDIA] 必須 (MUST) 必須 (MUST)
@top-left-corner, @top-left,
@top-center,
@top-right,
@top-right-corner
ページの上マージンの、ヘッダを配置する領域を指定する [PAGEMEDIA] 必須 (MUST) 必須 (MUST)

4. プロパティ

セレクタと同じように、プリンタがサポートすべき (MUST) プロパティは、モバイル機器がサポートすべき (MUST) プロパティに似ています ([CSSMOBILE], プロパティプロパティ [訳])。例外は、ページには適用できないもの、明確にページ以外のメディアを対象とするもの以外のとなります。

一部の値のみを、プリンタに許容する値としている場合があります。これは低価格プリンタのメモリと性能能力の要件に該当させるためです。

次の表は、CSS Print Profile のプロパティとプロパティ値をまとめたものです。image-orientation、fit、fit-position、size プロパティについては CSS3 Module: Paged Media [PAGEMEDIA] を、その他のプロパティや値の定義については [CSS21] を参照してください。

Name CSS Print CSS Print-Enhanced CSS 値 初期値
'background' background-color | inherit ['background-color' || 'background-image' || 'background-repeat' || 'background-position'] | inherit ['background-color' || 'background-image' || 'background-repeat' || 'background-attachment' || 'background-position'] | inherit 個々のプロパティを参照
'background-color' 必須 (MUST) 必須 (MUST) <color> | transparent | inherit transparent
'background-image' 許容 (MAY) 必須 (MUST) <uri> | none | inherit none
'background-position' 許容 (MAY) 必須 (MUST) [ [ <percentage> | <length> ]{1,2} | [ [top | center | bottom] || [left | center | right] ] ] | inherit 0% 0%
'background-repeat' 許容 (MAY) 必須 (MUST) repeat | repeat-x | repeat-y | no-repeat | inherit repeat
'border' 許容 (MAY) 必須 (MUST) [ <border-width> || <border-style> || [<color> | transparent] ] | inherit 個々のプロパティを参照
'border-collapse' 許容 (MAY) 必須 (MUST) collapse | separate | inherit collapse
'border-color' 許容 (MAY) 必須 (MUST) [<color> | transparent]{1,4} | inherit 個々のプロパティを参照
'border-spacing' 許容 (MAY) 必須 (MUST) <length> <length>? | inherit 0
'border-style' 許容 (MAY) none, solid <border-style>{1,4} | inherit 個々のプロパティを参照
'border-top' 'border-right' 'border-bottom' 'border-left' 許容 (MAY) 必須 (MUST) [ <border-width> || <border-style> || [<color> | transparent] ] | inherit 個々のプロパティを参照
'border-top-color' 'border-right-color' 'border-bottom-color' 'border-left-color' 許容 (MAY) 必須 (MUST) <border-color> | transparent | inherit 'color' プロパティの値
'border-top-style' 'border-right-style' 'border-bottom-style' 'border-left-style' 許容 (MAY) none, solid <border-style> | inherit none
'border-top-width' 'border-right-width' 'border-bottom-width' 'border-left-width' 許容 (MAY) 必須 (MUST) <border-width> | inherit medium
'border-width' 許容 (MAY) 必須 (MUST) <border-width>{1,4} | inherit 個々のプロパティを参照
'bottom' 許容 (MAY) 必須 (MUST) <length> | <percentage> | auto | inherit auto
'caption-side' 許容 (MAY) 必須 (MUST) top | bottom | left | right | inherit top
'clear' 許容 (MAY) 必須 (MUST) none | left | right | both | inherit none
'clip' 許容 (MAY) 必須 (MUST) <shape> | auto | inherit auto
'color' 必須 (MUST) 必須 (MUST) <color> | inherit ユーザエージェントによる
'content' inherit | [<string> | counter(pages)]+ inherit | [<string> | counter(pages)]+ [ <string> | <uri> | <counter> | attr(X) | open-quote | close-quote | no-open-quote | no-close-quote ]+ | inherit 空文字列
'counter-increment' "pages" "pages" [ <identifier> <integer> ]+ | none | inherit none
'counter-reset' 必須 (MUST) 必須 (MUST) [ <identifier> <integer>? ]+ | none | inherit none
'display' 許容 (MAY) inline | block | list-item | none |inherit inline | block | list-item | run-in | compact | marker | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | none | inherit inline
'fit' 許容 (MAY) 必須 (MUST) fill | hidden | meet | slice fill
'fit-position' 許容 (MAY) 必須 (MUST) [ [<percentage> | <length> ]{1,2} | [ [top | center | bottom] || [left | center | right] ] ] | auto 0% 0%
'float' 許容 (MAY) 必須 (MUST) left | right | none | inherit none
'font' [ [ 'font-style' || 'font-weight' ]? 'font-size' [ / 'line-height' ]? 'font-family' ] | inherit [ [ 'font-style' || 'font-variant' || 'font-weight' ]? 'font-size' [ / 'line-height' ]? 'font-family' ] | inherit [ [ 'font-style' || 'font-variant' || 'font-weight' ]? 'font-size' [ / 'line-height' ]? 'font-family' ] | caption | icon | menu | message-box | small-caption | status-bar | inherit 個々のプロパティを参照
'font-family' 必須 (MUST)* 必須 (MUST)* [[ <family-name> | <generic-family> ],]* [ <family-name> | <generic-family> ] | inherit ユーザエージェントによる
'font-size' 必須 (MUST) ** 必須 (MUST) ** <absolute-size> | <relative-size> | <length> | <percentage> | inherit medium
'font-style' 必須 (MUST)** 必須 (MUST) ** normal | italic | oblique | inherit normal
'font-variant' 許容 (MAY) 必須 (MUST) normal | small-caps | inherit normal
'font-weight' 必須 (MUST) ** 必須 (MUST) ** normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit normal
'height' 必須 (MUST) 必須 (MUST) <length> | <percentage> | auto | inherit auto
'image-orientation' 許容 (MAY) 必須 (MUST) <angle> | auto auto
'left' 許容 (MAY) 必須 (MUST) <length> | <percentage> | auto | inherit auto
'letter-spacing' 許容 (MAY) 必須 (MUST) normal | <length> | inherit normal
'line-height' 必須 (MUST) 必須 (MUST) normal | <number> | <length> | <percentage> | inherit normal
'list-style' 許容 (MAY) 必須 (MUST) [ 'list-style-type' || 'list-style-position' || 'list-style-image' ] | inherit 個々のプロパティを参照
'list-style-image' 許容 (MAY) 必須 (MUST) <uri> | none | inherit none
'list-style-position' 必須 (MUST) 必須 (MUST) inside | outside | inherit outside
'list-style-type' disc, decimal, lower-alpha, upper-alpha, none, inherit disc, decimal, lower-alpha, upper-alpha, none, inherit disc | circle | square | decimal | decimal-leading-zero | lower-roman | upper-roman | lower-greek | lower-alpha | lower-latin | upper-alpha | upper-latin | hebrew | armenian | georgian | cjk-ideographic | hiragana | katakana | hiragana-iroha | katakana-iroha | none | inherit disc
'margin' 必須 (MUST) 必須 (MUST) <margin-width>{1,4} | inherit 個々のプロパティを参照
'margin-top' 'margin-right' 'margin-bottom' 'margin-left' 必須 (MUST) 必須 (MUST) <margin-width> | inherit 0
'orphans' 許容 (MAY) 必須 (MUST) <integer> | inherit 2
'overflow' 許容 (MAY) 必須 (MUST) visible | hidden | scroll | auto | inherit visible
'padding' 許容 (MAY) 必須 (MUST) <padding-width>{1,4} | inherit 個々のプロパティを参照
'padding-top' 'padding-right' 'padding-bottom' 'padding-left' 許容 (MAY) 必須 (MUST) <padding-width> | inherit 0
'page' 必須 (MUST) 必須 (MUST) <identifier> | auto auto
'page-break-after' auto | always | inherit auto | always | inherit auto | always | avoid | left | right | inherit auto
'page-break-before' auto | always | inherit auto | always | inherit auto | always | avoid | left | right | inherit auto
'page-break-inside' 必須 (MUST) 必須 (MUST) avoid | auto | inherit auto
'position' 許容 (MAY) 必須 (MUST) static | relative | absolute | fixed | inherit static
'right' 許容 (MAY) 必須 (MUST) <length> | <percentage> | auto | inherit auto
'size' [<length>{1,2}| letter | legal | ledger | A4 | A5 | A3 | B4 | B5 ] | auto | portrait | inherit [<length>{1,2} | letter | legal | ledger | A4 | A5 | A3 | B4 | B5 ] | auto | portrait | landscape | inherit [<length>{1,2} | letter | legal | ledger | A4 | A5 | A3 | B4 | B5 ] | auto | portrait | landscape | inherit auto
'table-layout' 許容 (MAY) 必須 (MUST) auto | fixed | inherit auto
'text-align' left | center | inherit left | right | center | inherit left | right | center | justify | <string> | inherit ユーザエージェントと書字方向による
'text-decoration' none, underline, inherit none, underline, inherit none | [ underline || overline || line-through || blink ] | inherit none
'text-indent' 必須 (MUST) 必須 (MUST) <length> | <percentage> | inherit 0
'text-transform' 許容 (MAY) 必須 (MUST) capitalize | uppercase | lowercase | none | inherit none
'top' 許容 (MAY) 必須 (MUST) <length> | <percentage> | auto | inherit auto
'vertical-align' 許容 (MAY) 必須 (MUST)1 baseline | sub | super | top | text-top | middle | bottom | text-bottom | <percentage> | <length> | inherit baseline
'visibility' 許容 (MAY) 必須 (MUST) visible | hidden | collapse | inherit inherit
'white-space' 必須 (MUST) 必須 (MUST) normal | pre | nowrap | inherit normal
'widows' 許容 (MAY) 必須 (MUST) <integer> | inherit 2
'width' 必須 (MUST) 必須 (MUST) <length> | <percentage> | auto | inherit auto

表の注釈:

† 現在のページ番号を表す、一つの識別子 "pages" のみが要求されます (REQUIRED)。

* プリンタはもっとも少ない場合でも、フォントファミリ "serif"、"sans-serif" と "monospace" のサポートが推奨されます (RECOMMENDED)。

** サポートされる値は、プリンタに存在するフォントに対して適切なものになっているべきです (SHOULD)。

‡ プリンタは、現在のフローの前のページに配置されるような、位置決めされる要素を無視することができます (MAY)。

1 ページ境界を跨ぐ垂直位置決め (vertical-align) は未定義です。

5. CSS 構文

CSS Print Profile は、Cascading Style Sheets, Level 2, revision 1 (CSS 2.1) [CSS21] で規定されているのと同じ構文を使用します。CSS Print Profile は、 CSS 2.1 で使われる値のサブセットを使用します。具体的には次のとおりです。

  1. プリンタは整数値と実数値をサポートするものとします (SHALL) ([CSS21]、4.3.1 節)。
  2. プリンタは以下の形式の長さをサポートするものとします (SHALL) ([CSS21]、4.3.2 節): プリンタは他の形式の長さをサポートしてもかまいません (MAY)。
  3. プリンタはパーセント値をサポートするものとします (SHALL) ([CSS21]、4.3.3 節)。
  4. プリンタは URI 値をサポートするものとします (SHALL) ([CSS21]、4.3.4 節)。
  5. プリンタはページ番号を追いかけるカウンタ値 "pages" をサポートするものとします (SHALL) ([CSS21]、4.3.5 節)。
  6. プリンタは以下の形式の色値をサポートするものとします (SHALL)。 プリンタは他の形式の色をサポートしてもかまいません (MAY)。プリンタは色に関する利用者の好みに対応してもかまいません (MAY) ([CSS 2.1]、18.2 節)。
  7. プリンタはフォントに関する利用者の好みに対応してもかまいません (MAY) ([CSS 2.1]、18.3 節)。

同様に、CSS Print Profile では、適合するユーザエージェントに対して、 CSS 2.1 [CSS21] で規定された文字符号化機構をサポートすることを必須とします。具体的には次のとおりです。

  1. プリンタは、文書の文字符号化方式の決定にあたって、CSS 2.1 [CSS21] で規定された優先順序をサポートするものとします (SHALL)。
  2. プリンタは CSS 2.1 の @charset 規則をサポートするものとします (SHALL)。 しかしながら、外部スタイルシート中での @charset 規則に指定された文字符号化方式にプリンタが対応しない場合は、スタイルシートは無視されるでしょう。

6. プロパティ値の割り当て、カスケーディング、継承

全体的に、CSS Print Profile では CSS 2.1 と同じカスケーディング規則を 使用します。具体的には次のとおりです。

  1. プリンタは CSS 2.1 ([CSS21] 6.1 節) の記述どおりに値を割り当てるものとします (SHALL)。
  2. プリンタは CSS 2.1 ([CSS21] 6.2 節) の記述どおりに継承をサポートするものとします (SHALL)。
  3. 高度なレイアウト拡張への適合をサポートするプリンタは、CSS 2.1 ([CSS21] 6.3 節) の規定どおりに CSS 2.1 の @import 規則をサポートするものとします (SHALL)。
  4. プリンタは作成者によるスタイルシートをサポートするものとします (SHALL)。プリンタは、ユーザやユーザエージェントによるスタイルシート ([CSS21] 6.4 節) をサポートしてもかまいません (MAY)。
  5. プリンタは CSS 2.1 のカスケーディング機構 ([CSS21] 6.4.16.4.4 節) をすべてサポートするものとします (SHALL)。

7. メディアタイプ

CSS Print Profile に適合するユーザエージェントは、CSS 2.1 ([CSS21] 7 節) で規定されているように、メディア依存のスタイルシートを処理するものとします (SHALL)。具体的には次のとおりです。

  1. プリンタは CSS 2.1 ([CSS21] 7 節) の規定どおりに CSS 2.1 の @media 規則をサポートするものとします (SHALL)。
  2. プリンタはメディアタイプ print を対象とするスタイルシートを受け入れ、処理するものとします (SHALL)。
  3. プリンタは、メディアタイプ all を対象にしたスタイルシートを受け入れ、処理するものとします (SHALL)。
  4. プリンタは他 (print 以外) のメディア依存スタイルシートを含むスタイルシートを受け入れるものとします (SHALL)。
  5. プリンタは他のメディアタイプ (projectionhandheld など) を処理してもかまいません (MAY)。

8. CSS Print Profile のプロパティとユーザエージェントの相互の影響

以下の節では、適合条件要求を緩和させるか、さもなくば変更します。

8.1 入れ子になった浮動要素、div 要素、絶対配置されたボックス

浮動要素、div 要素、絶対配置されたボックスを、それら自身あるいは互いに、また表セルへの入れ子は慎重に使用すべきと、製作者は注意してください。これら構造物の入れ子の深さは、プリンタや実装系に依存するためです。

8.2 改ページ

長い要素に対して page-break-inside: avoid が指定され、プリンタがその要素全体をページに出力する前に保持できないなら、長い要素の前で改ページし、次のページの先頭からその要素を開始すべきです (SHOULD)。長い要素がページ先頭から開始されページの長さをはみ出してしまったのなら、プリンタは最初のページに可能な限り印刷し、次の、続きのページに続けるものとします (SHALL)。これは、ページ内容を保存することが要求されるためです (REQUIRED)。プリンタは長い要素を 1 ページに収めるようにスケール処理してもかまいません (MAY)。ですが、必要とされるスケーリングが最小でないようなものは、推奨されません。

8.3 ページの大きさ

プリンタの機械的制限により、実際の印刷領域はページの大きさより、しばしば小さくなります。しかしながら、印刷しようとするメディア中にページの大きさが CSS の size プロパティで提供されるなら、プリンタはそれ従うべきです (SHOULD)。

CSS3 Paged Media [PAGEMEDIA] の http://www.w3.org/TR/css3-page/#renderingpages にあるメディアシートに内容を合わせる議論を参照してください。

8.4 デフォルトスタイルシート

この節全体は参考です。

Cascading Style Sheets, Level 2, revision 1 ([CSS21]) の附属書 Dにはスタイルシートの例が紹介されています。このシートには、適合するプリンタには必要とされていないプロパティがいくつか含まれています。それらは高度なレイアウト拡張 (2.1 節) にも含まれていません。

8.5.1 プリンタのデフォルトスタイルシートのガイドライン

この節は 8.4.1 節であるはず。以下略。

高度なレイアウト機能 (enhanced layout facilities) を実装しないプリンタの開発者は、サポートしないプロパティが扱われている以下の実装ガイドラインに従うことが奨励されますが、必須であるとはされません。このガイドラインはプリンタ実装間の一貫性を促すために提示されています。

ガイドラインには、派生元であるCascading Style Sheets, Level 2, revision 1 [CSS21] のスタイルシートのガイドライン (の該当部) を注釈として付け加えています。

  1. address, blockquote, body, dd, div, dl, dt, h1, h2, h3, h4, h5, h6, hr, object, ol, p, preul 要素は display プロパティが block とされているように扱われるべきです。
  2. li 要素は display プロパティが list-item とされているように扱われるべきです。原文では should be treated as if its display property were set to list-items. だが、display プロパティにはそのような値は無い。
  3. 表の要素、table, tr, td, thcaption 要素は、それらの標準の意味あいと display の扱いを持つようにされるべきです。つまり table, table-row, table-cell そして table-caption です。
  4. base, br, html, head, link, meta, param, style title 要素は display プロパティが none とされているように扱われるべきです。
  5. 残りの要素、a, abbr, acronym, b, big, cite, code, dfn, em, form, i, img, input, kbd, option, samp, small, select, strong, sub, sup, textarea, ttvar は、 display プロパティが inline とされているように扱われるべきです。 img, input, selecttextarea 要素の display プロパティを inline とすることは、block とする時には無かった柔軟性を文書作成者に与えます。
    上記ガイドラインは、CSS 2.1 デフォルトスタイルシートの以下の部分から導出されます。
    
    ADDRESS, BLOCKQUOTE, BODY, DD, DIV, DL, DT, FIELDSET, FORM, 
    FRAME, FRAMESET, H1, H2, H3, H4, H5, H6, IFRAME, NOFRAMES, 
    OBJECT, OL, P, UL, APPLET, CENTER, DIR, HR, MENU, 
                  { display: block }
    LI            { display: list-item }
    HEAD          { display: none }
    TABLE         { display: table }
    TR            { display: table-row }
    THEAD         { display: table-header-group }
    TBODY         { display: table-row-group }
    TFOOT         { display: table-footer-group }
    COL           { display: table-column }
    COLGROUP      { display: table-column-group }
    TD, TH        { display: table-cell }
    CAPTION       { display: table-caption } 
    
  6. body 要素の内容の縁はページ印刷領域の上下左右から 0.1 インチ内側とされるべきです。マージン計算はこれらのオフセット位置から始まるでしょう。
    0.1 インチという数字は、通常のディスプレイの解像度である 75 px/インチ での 8 px が、約 0.1 インチと計算されることに由来します。
    
    BODY          { padding: 8px; 
                    line-height: 1.33 } 
    
  7. sub 要素の内容は、vertical-align プロパティが sub であるかのように扱われるべきです。同様に、sup 要素は vertical-align プロパティが super であるかのように扱われるべきです。原文では should be treated as if its vertical-align property were set to sup. だが、vertical-align プロパティにはそのような値は無い。
    
    SUB             { vertical-align: sub }
    SUP             { vertical-align: super } 
    
  8. hr 要素は height と width で定義される領域が、1 ピクセルの thick かつ solid な線で囲まれるように扱われるべきです。標準の線は、高さ 1 ピクセルの包含ブロックの幅となるべきです。
    
    HR              { border: 1px inset } 
    
  9. abbracronym 要素の内容の (英) 小文字は、現在の文字サイズの約 75 % の大きさの、大文字として描画されるべきです。大文字は変わらないでしょう。プリンタは小文字を縮小せずに大文字として描画してもかまいません。
    上で 75 % という数字は、small-caps に近似する唯一つの方法です。プリンタが small-caps の独自の描画をすることは自由です。
    
    ABBR, ACRONYM   { font-variant: small-caps; 
                      letter-spacing: 0.1em } 
    
  10. h1, h2, h3, h4, h5h6 要素内やその後ろでの改ページの防止は削除されます。したがって、プリンタはこれら要素をあるページの末尾からその次のページの先頭へと移動させることは必須ではありません。
    
    H1, H2, H3,
    H4, H5, H6    { page-break-after: avoid; 
                    page-break-inside: avoid }
    
  11. プリンタは ul, ol, dl の前で改ページを防ぐ必要はありません。
    
    UL, OL, DL    { page-break-before: avoid } 
    
  12. プリンタは Cascading Style Sheets, Level 2, revision 1 ボックスモデル ([CSS21]、8 節) が適用する、要素に対する padding プロパティに、独自の固定値を選んでもかまいません。
  13. hr 要素以外のすべての要素の境界は、その border-style プロパティが none と設定されているかのように扱われるべきです。
  14. すべての要素の内容はその overflow プロパティが visible に、clip プロパティが auto と設定されているかのように扱われるべきです
    このガイドラインは実装間での一貫した振る舞いを提案します。
  15. すべての要素の内容は、その position プロパティが static と設定されているかのように扱われるかもしれません
    要素は通常フローにあるかのように扱われるべきです
  16. 表は table-layout プロパティが fixed であるかのように扱われるべきです。
    次のような理由なので、このガイドラインは一貫性を促進します。
    • table-layout プロパティは強制されません
    • このプロパティのための CSS デフォルトスタイルシートはありません

下記スタイルシートは Cascading Style Sheets, Level 2, revision 1 ([CSS21]、附属書 D) の附属書 Dにあるサンプルスタイルシートを改変し、前記ガイドラインによったものです。

th              { font-weight: bolder; text-align: center }
caption         { text-align: center }
body            { line-height: 1.33 }
h1              { font-size: 2em; margin: .67em 0 }
h2              { font-size: 1.5em; margin: .83em 0 }
h3              { font-size: 1.17em; margin: 1em 0 }
h4, p,
blockquote, ul,
form,
ol, dl          { margin: 1.33em 0 }
h5              { font-size: .83em; line-height: 1.17em; margin: 1.67em 0 }
h6              { font-size: .67em; margin: 2.33em 0 }
h1, h2, h3, h4,
h5, h6, b,
strong          { font-weight: bolder }
blockquote      { margin-left: 40px; margin-right: 40px }
i, cite, em,
var, address    { font-style: italic }
pre, tt, code,
kbd, samp       { font-family: monospace }
pre             { white-space: pre }
big             { font-size: 1.17em }
small, sub, sup { font-size: .83em }
ol, ul, dd      { margin-left: 40px }
ol              { list-style-type: decimal }
ol ul, ul ol,
ul ul, ol ol    { margin-top: 0; margin-bottom: 0 }
br       { content: "\A" }

@media print {
  @page         { margin: 10% }
  blockquote, 
  pre           { page-break-inside: avoid }
}

8.5.2 高度なレイアウト拡張のプリンタでのデフォルトスタイルシートのガイドライン

高度なレイアウト拡張 (2.1 節) に適合するプリンタの開発者は、適合するプリンタよりも多くの Cascading Style Sheets, Level 2, revision 1 [CSS21] を実装しなければなりません (MUST)。それでも、プロパティやその値の組み合わせは完全なものより少なくなります。

プリンタの開発者は、サポートしないプロパティが扱われている以下の実装ガイドラインに従うことが奨励されますが、必須であるとはされません

  1. 表の要素、table, tr, td, thcaption 要素は、それらの標準の意味あいと display の扱いを持つようにされるべきです。つまり table, table-row, table-cell そして table-caption です。
  2. hr 要素の描画方法は実装に依存します。なぜなら border-style プロパティの inset 値のサポートは必須であるとはされていないからです
  3. h1, h2, h3, h4, h5h6 要素内やその後ろでの改ページの防止は削除されます。したがって、プリンタはこれら要素をあるページの末尾からその次のページの先頭へと移動させることは必須ではありません。
  4. プリンタは ul, ol, dl の前で改ページを防ぐ必要はありません。

下記スタイルシートは [CSS21] の附属書 Dにあるサンプルスタイルシートを改変し、前記ガイドラインによったものです。

address,
blockquote, 
body, dd, div, 
dl, dt, 
form,
h1, h2, h3, h4, 
h5, h6, 
object, ol, p, 
ul,
hr, pr e        { display: block }
li              { display: list-item }
head            { display: none }
th              { font-weight: bolder; text-align: center }
caption         { text-align: center }
body            { padding: 8px; line-height: 1.33 }
h1              { font-size: 2em; margin: .67em 0 }
h2              { font-size: 1.5em; margin: .83em 0 }
h3              { font-size: 1.17em; margin: 1em 0 }
h4, p,
blockquote, ul,
form,
ol, dl,         { margin: 1.33em 0 }
h5              { font-size: .83em; line-height: 1.17em; margin: 1.67em 0 }
h6              { font-size: .67em; margin: 2.33em 0 }
h1, h2, h3, h4,
h5, h6, b,
strong          { font-weight: bolder }
blockquote      { margin-left: 40px; margin-right: 40px }
i, cite, em,
var, address    { font-style: italic }
pre, tt, code,
kbd, samp       { font-family: monospace }
pre             { white-space: pre }
big             { font-size: 1.17em }
small, sub, sup { font-size: .83em }
hr              { border: 1px  }
ol, ul, dd      { margin-left: 40px }
ol              { list-style-type: decimal }
ol ul, ul ol,
ul ul, ol ol    { margin-top: 0; margin-bottom: 0 }
br       { content: "\A" }

@media print {
  @page         { margin: 10% }
  blockquote, 
  pre           { page-break-inside: avoid }
}

9. 謝辞

この節は参考です。

この仕様は W3C CSS ワーキンググループにより準備されたものです。公表時点の関係者は以下の通りです。

一覧はこの本文書が勧告になったら追加されます。

この仕様は、IEEE Industry Standards and Technology Organization, Inc. のプログラム、プリンタワーキンググループ の同名の仕様、CSS Print Profile [CSSPP] を元にしています。編集者はそれに貢献したすべての人々に感謝を述べたいと存じます。

附属書 A. 参考文献

A.1 参考仕様

[CSS21]
Cascading Style Sheets, Level 2, revision 1、B. Bos、ほか、World Wide Web Consortium、2006 年 4 月 11 日。入手先は http://www.w3.org/TR/2006/WD-CSS21-20060411/ です。最新版の入手先は http://www.w3.org/TR/CSS21/ です。
[PAGEMEDIA]
CSS3 Module: Paged Media、W3C 草案、H. Lie と M. Grant、World Wide Web Consortium、2006 年 10 月 10 日。入手先は http://www.w3.org/TR/2006/WD-css3-page-20061010/ です。最新版の入手先は http://www.w3.org/TR/css3-page/ です。
[RFC2119]
RFC2119 - Key words for use in RFCs to Indicate Requirement Levels、S. Bradner、The Internet Engineering Task Force、1997 年 3 月。入手先は http://www.ietf.org/rfc/rfc2119.txt?number=2119 です。

A.2 その他有益な参考文献

[CSSPP]
CSS Print Profile、PWG 標準勧告 5102.2、D. Wright、J. Bigelow、編集者。2003 年 3 月 28 日。入手先は http://www.pwg.org/xhtml-print/HTML-Version/CSS-Print.html です。
[CSSMOBILE]
CSS Mobile Profile 1.0、W3C 勧告候補 2002 年 7 月 25 日、T. Wugofski、D. Dominiak、R. Stark、T. Roy、入手先は http://www.w3.org/TR/css-mobile です。訳註:拙訳は http://www1.ttcn.ne.jp/amotohiko/css-mobile にあります。
[HTML4]
HTML 4.01 Specification、D. Raggett、A. Le Hors、そして I.Jacobs、編集者。World Wide Web Consortium、1997 年 12 月 17 日、改訂版は 1999 年 12 月 24 日、。HTML 4.01 勧告のこのバージョンは http://www.w3.org/TR/1998/REC-html40-19980424 です。HTML 4 の最新版の入手先は http://www.w3.org/TR/html4 です。
[XHTMLPRINT]
XHTML-Print、W3C 勧告、J. Bigelow と M. Grant、World Wide Web Consortium、2006 年 9 月 20 日。入手先はhttp://www.w3.org/TR/2006/REC-xhtml-print-20060920/ です。最新版の入手先は http://www.w3.org/TR/xhtml-print/ です。

[訳注: 各仕様の日本語訳については、http://www.w3.org/2005/11/Translations/Query?lang=ja に情報がまとめられています]


翻訳: もとひこ <amotohiko_mozillafirebird@yahoo.co.jp>