Bloki XSL-FO

Wyjście XSL-FO znajduje się w obszarze bloków.

Strony, strumienie oraz bloki XSL-FO

Zawartość "blok" będzie przepływać do "strony", a następnie będzie wyświetlana na medium.

Wyjście XSL-FO jest zazwyczaj umieszczane w elemencie <fo:block>, który jest umieszczony w elemencie <fo:flow>, który jest umieszczony w elemencie <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>

Atrybuty obszaru blokowego

Blok jest sekwencją wyjściową umieszczoną w ramce prostokątnej:

<fo:block border-width="1mm">
Wokół tego wyjściowego bloku znajduje się granica o szerokości jednego milimetra.
</fo:block>

Ponieważ obszar blokowy jest ramką prostokątną, można dzielić się wieloma wspólnymi atrybutami obszarowymi:

  • odstup przed i odstup po
  • margin
  • granica
  • padding
  • odstup przed

Ilustracja:

odstup przed i odstup po jest pustym obszarem oddzielającym bloki.

margin jest pustym obszarem zewnętrznym bloku.

granica jest prostokątnym konturem zewnętrznym obszaru. Każda z czterech stron może mieć różne szerokości. Może być również wypełniony różnymi kolorami i obrazami tła.

padding jest obszarem położonym między obszarem treści a granicą.

ZawartośćObszar może zawierać rzeczywiste treści, takie jak tekst, obrazy, grafiki itp.

odstup blokowy

  • margin
  • margin górny
  • margin dolny
  • margin lewy
  • margin prawy

granica blokowa

Atrybut stylu granicy:

  • styl granicy
  • styl paska przed (рівнозначny border-before)
  • styl paska za (рівнозначny border-after)
  • styl granicy lewej
  • styl granicy prawej
  • styl granicy górnej ((рівнозначny border-before)
  • styl granicy dolnej (рівнозначny border-after)
  • styl granicy lewej (рівнозначny border-start)
  • styl granicy prawej (рівнозначny border-end)

Atrybut koloru granicy:

  • kolor granicy
  • kolor paska przed (рівнозначny border-before)
  • kolor paska za (рівнозначny border-after)
  • kolor lewego paska granicy
  • kolor prawego paska granicy
  • kolor górnego paska granicy (рівнозначny border-before)
  • kolor dolnego paska granicy (рівнозначny 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">
This block of output will be written in a 12pt sans-serif font.
</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 (定义分页符,page breaks)
  • break-after (definiowanie symbolu przecinka, przecinek strony)
  • reference-orientation (definiowanie obrotu tekstu wewnętrznego 90")

Przykład

<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">
W CodeW3C.com znajdziesz wszystkie kursy tworzenia stron internetowych, które
potrzebne, od podstaw HTML i XHTML po zaawansowane XML, XSL, Multimedia
i WAP.
</fo:block>

Wynik:

Zobacz powyższy przykład, aby stworzyć dokument z wieloma tytułami i akapitami, będzie potrzebny bardzo duży kod.

Zwykle dokumenty XSL-FO nie łączą informacji o formatach i zawartości w sposób, w jaki to robiliśmy wcześniej.

Z niewielką pomocą XSLT możemy umieścić informacje o formatach w szablonie i napisać czystszy treść.

W rozdziałach poniżej tego kursu nauczysz się, jak używać szablonów XSLT do łączenia XSL-FO.