XSLT/XSL-FO/SVG/MathML 仕様についてXSL-FO |
|
Q. |
ページの始めのblockで space-before="2.0in" を指定したのですが、有効になりません。なぜですか。
[No.2002102507]
|
---|---|
A. |
例えば次のFOのとき、 <fo:flow> <fo:block space-before="2.0in"> AAAAAAAA </fo:block> </fo:flow> 参照エリア、行エリアの先頭と最後のspaceの conditionality は "discard" がデフォルトです。 したがって、参照エリアの始めの block で space-before="2.0in"を指定しても、space-before.conditionality="discard" によって無効になります。 また、次の例でも同じです。 <fo:flow> <fo:block> <fo:block space-before="2.0in"> AAAAAAAA </fo:block> </fo:block> </fo:flow> 親のblockに discard の対象となる space や border/padding がない場合、子の最初のblockに条件が当てはまり、space-before.conditionality="discard"となるので、子のblockに設定されているspace-before="2.0in"は無効になります。 よって、space-beforeを有効にしたいときは、次のようにspace conditionalityを"retain"にする必要があります。 <fo:flow> <fo:block space-before="2.0in" space-before.conditionality="retain"> AAAAAAAA </fo:block> </fo:flow> |