XSL-FO Blocks(ブロック)

XSL-FOの出力はブロックエリアに位置しています。

XSL-FOページ、フロー、ブロック

内容「ブロック」は「フロー」して「ページ」に入り、その後メディアに出力されます。

XSL-FOの出力は通常<fo:block>要素に組み込まれており、<fo:block>は<fo:flow>要素に組み込まれ、<fo:flow>は<fo:page-sequence>要素に組み込まれています:

<fo:page-sequence>
  <fo:flow flow-name="xsl-region-body">
    <fo:block>
      <!-- Output goes here -->
    </fo:block>
  </fo:flow>
</fo:page-sequence>

块区域的属性

块是位于矩形框中的输出序列:

<fo:block border-width="1mm">
这个输出块周围有一条一毫米的边框。
</fo:block>

由于块区域是矩形框,所以可共享许多公共的区域属性:

  • space before 和 space after
  • margin
  • border
  • padding
  • space before

图示:

space beforespace after 是块与块之间起分割作用的空白。

margin 是块外侧的空白区域。

border 的区域外部边缘的矩形。其四个边均可有不同的宽度。它也可被填充为不同的颜色和背景图像。

padding 是位于内容区域与边框之间的区域。

内容区域可包含实际的内容,比如文本、图片、图形等等。

块边距

  • margin
  • margin-top
  • margin-bottom
  • margin-left
  • margin-right

块边框

边框样式属性:

  • border-style
  • border-before-style
  • border-after-style
  • border-start-style
  • border-end-style
  • border-top-style ((同等に border-before)
  • border-bottom-style (同等に border-after)
  • border-left-style (同等に border-start)
  • border-right-style (同等に border-end)

边框颜色属性:

  • border-color
  • border-before-color
  • border-after-color
  • border-start-color
  • border-end-color
  • border-top-color (同等に border-before)
  • border-bottom-color (同等に border-after)
  • border-left-color (border-startに等しい)
  • border-right-color (border-endに等しい)

枠線幅属性:

  • border-width
  • border-before-width
  • border-after-width
  • border-start-width
  • border-end-width
  • border-top-width (border-beforeに等しい)
  • border-bottom-width (border-afterに等しい)
  • border-left-width (border-startに等しい)
  • border-right-width (border-endに等しい)

ブロックパディング

  • padding
  • padding-before
  • padding-after
  • padding-start
  • padding-end
  • padding-top (padding-beforeに等しい)
  • padding-bottom (padding-afterに等しい)
  • padding-left (padding-startに等しい)
  • padding-right (padding-endに等しい)

ブロック背景

  • background-color
  • background-image
  • background-repeat
  • background-attachment (scroll または fixed)

ブロックスタイル属性:

ブロックは独立してスタイル化できる出力シーケンスです:

<fo:block
  font-size="12pt"
  font-family="sans-serif">
この出力ブロックは12ptの sans-serif フォントで書かれます。
</fo:block>

フォント属性:

  • font-family
  • font-weight
  • font-style
  • font-size
  • font-variant

テキスト属性:

  • text-align
  • text-align-last
  • text-indent
  • start-indent
  • end-indent
  • wrap-option (自動改行の定義,word wrap)
  • break-before (ページブレイクの定義)
  • break-after(分页符、ページブレイクを定義)
  • reference-orientation(90"内のテキストの回転を定義)

<fo:block
    font-size="14pt" font-family="verdana" color="red"
    space-before="5mm" space-after="5mm">
W3School
</fo:block>
<fo:block
    text-indent="5mm"
    font-family="verdana" font-size="12pt"
    space-before="5mm" space-after="5mm">
CodeW3C.comで、すべてのウェブ構築チュートリアルを見つけることができます
必要で、基本的なHTMLおよびXHTMLから高度なXML、XSL、マルチメディアまで
および WAP.
</fo:block>

結果:

上の例を見てください。多くのタイトルや段落を持つドキュメントを生成するには、非常に多くのコードが必要になります。

通常、XSL-FO ドキュメントは、私たちが先ほど行ったようにフォーマット情報と内容を組み合わせることはありません。

XSLT の少しの助けで、フォーマット情報をテンプレートに格納し、より純粋な内容を書き出すことができます。

このチュートリアルの後の章で、XSLT テンプレートを使用して XSL-FO を結合する方法を学びます。