第8章 ボーダー(罫線)とパディング

8–1 ボーダー

XSL-FOでは罫線はFOの周囲のボーダーとして設定する。ボーダー関連の共通プロパティは次の三つがある。

ボーダープロパティはエリア周囲の四辺に独立に指定できる。四辺の指示方法には、絶対プロパティと論理プロパティによる方法があり(5–10–3 ボーダー・プロパティのグループ参照)、絶対プロパティはライティングモードに応じて論理プロパティに変換される(5–10–4 論理プロパティと絶対プロパティの対応参照)。まとめると次のようになる。

ボーダーの指定方法

border-[上下左右辺の指示]-[styleまたはwidthまたはcolor]

[上下左右辺の指示](以下では、* で表記する)は、絶対プロパティはtop、bottom、left、rightのどれかである。論理プロパティはbefore、after、start、endのどれかである。

例えば、ブロックの前方辺に太さ0.5mmの赤の点線を引く場合は次のように設定する。

<fo:block border-before-color="red"
          border-before-style="dotted"
          border-before-width="0.5mm" />

表の罫線専用として、隣合うセルの罫線間の扱いを指定するための(border-collapse、border-separation(CSSではborder-spacing))プロパティがある(詳細は第17章 表を参照)。

8–1–1 ボーダーの色

プロパティborder-*-colorはボーダーの色を表すプロパティである。値はカラーのキーワードまたは値を指定する(キーワードと値については7–3 文字の色を参照)。

8–1–2 ボーダーの種類

プロパティborder-*-styleはボーダーの線種を指定する。値としてnone(初期値)、hidden、dotted、dashed、solid、double、groove、ridge、inset、outsetのどれかを指定する(線種については図8・1 ボーダーの種類と太さを参照)。noneを指定するとborder-*-widthの値が'0'になる。

8–1–3 ボーダーの太さ

絶対プロパティはプロパティborder-*-widthの値としてthin、medium(初期値)、thick、<length>を指定する。

論理プロパティは、これに加えて<length-conditional>値による指定もできる。<length-conditional>値ではconditionaltyをretainまたはdiscard(初期値)を指定する。discardを指定するとbefore/after辺は参照エリアの最初または最後、start/end辺はラインエリアの最初または最後でボーダーの太さを0に制御する。

ボーダーの種類と太さ

ボーダーの種類と太さの設定例を示す。

ボーダーの種類と太さ

図8・1 ボーダーの種類と太さ

8–2 パディング

パディングは内容領域とボーダーの間の空きを指定する。

表8・1 padding-top/padding-bottom/padding-left/padding-rightプロパティ
プロパティ値説明
<padding-width>初期値は0ptである。<length>型であるが、負の値を指定することはできない。
表8・2 padding-before/padding-after/padding-start/padding-endプロパティ
プロパティ値説明
<padding-width>初期値は0ptである。<length>型であるが、負の値を指定することはできない。
<length-conditional> lengthコンポーネントとconditionaltyコンポーネントで構成する。lengthコンポーネントは<length>型であるが、負の値を指定することはできない。conditionaltyコンポーネントはretainまたはdiscard(初期値)。

conditionaltyコンポーネントについてはボーダーの太さの論理プロパティの項の解説を参照。

8–3 ショートハンド

絶対プロパティはショートハンドで指定できる。ショートハンドの指定方法はCSSと同じである。ショートハンドの種類と展開先プロパティ-は表6・2 ショートハンド・プロパティの一覧を参照。展開方法は6–6 ショートハンド・プロパティを参照。

8–4 設定対象FO

ボーダーとパディングが適用されるFOは次の通り。表の一部についてはパディング適用外である。