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章 表を参照)。
プロパティborder-*-colorはボーダーの色を表すプロパティである。値はカラーのキーワードまたは値を指定する(キーワードと値については7–3 文字の色を参照)。
プロパティborder-*-styleはボーダーの線種を指定する。値としてnone(初期値)、hidden、dotted、dashed、solid、double、groove、ridge、inset、outsetのどれかを指定する(線種については図8・1 ボーダーの種類と太さを参照)。noneを指定するとborder-*-widthの値が'0'になる。
絶対プロパティはプロパティborder-*-widthの値としてthin、medium(初期値)、thick、<length>を指定する。
論理プロパティは、これに加えて<length-conditional>値による指定もできる。<length-conditional>値ではconditionaltyをretainまたはdiscard(初期値)を指定する。discardを指定するとbefore/after辺は参照エリアの最初または最後、start/end辺はラインエリアの最初または最後でボーダーの太さを0に制御する。
ボーダーの種類と太さの設定例を示す。
パディングは内容領域とボーダーの間の空きを指定する。
プロパティ値 | 説明 |
---|---|
<padding-width> | 初期値は0ptである。<length>型であるが、負の値を指定することはできない。 |
プロパティ値 | 説明 |
---|---|
<padding-width> | 初期値は0ptである。<length>型であるが、負の値を指定することはできない。 |
<length-conditional> | lengthコンポーネントとconditionaltyコンポーネントで構成する。lengthコンポーネントは<length>型であるが、負の値を指定することはできない。conditionaltyコンポーネントはretainまたはdiscard(初期値)。 |
conditionaltyコンポーネントについてはボーダーの太さの論理プロパティの項の解説を参照。
絶対プロパティはショートハンドで指定できる。ショートハンドの指定方法はCSSと同じである。ショートハンドの種類と展開先プロパティ-は表6・2 ショートハンド・プロパティの一覧を参照。展開方法は6–6 ショートハンド・プロパティを参照。
ボーダーとパディングが適用されるFOは次の通り。表の一部についてはパディング適用外である。