XSL-FO Blocks (block)

XSL-FO utdata finns i blockområdet.

XSL-FO sida, ström och block

Innehållet "block" strömmar in i "sida" och sedan ut till mediet.

XSL-FO utdata vanligtvis inbäddad i <fo:block>-elementet, <fo:block> inbäddad i <fo:flow>-elementet, <fo:flow> inbäddad i <fo:page-sequence>-elementet:

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

Egenskaper för blockområdet

Block är en sekvens av utdata som ligger inom en rektangulär ram:

<fo:block border-width="1mm">
Detta utdata-block har en kant på ett millimeter runt.
</fo:block>

Eftersom blockområdet är en rektangulär ram kan det dela många gemensamma områdesattribut:

  • utrymme före och utrymme efter
  • margin
  • border
  • padding
  • utrymme före

Illustration:

utrymme före och utrymme efter är det tomma området som skiljer block från varandra.

margin är det tomma området utefter blockets ytterkant.

border den rektangulära randen utanför områdets yttre kant. Dess fyra kanter kan ha olika bredd. Det kan också fyllas med olika färger och bakgrundsbilder.

padding är området mellan innehållsregionen och kanten.

InnehållEn region kan innehålla faktiskt innehåll, till exempel text, bilder, grafik och så vidare.

Blockmarginaler

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

Blockkant

Attribute för kantstil:

  • border-style
  • border-before-style
  • border-after-style
  • border-start-style
  • border-end-style
  • border-top-style (liknar på border-before)
  • border-bottom-style (liknar på border-after)
  • border-left-style (liknar på border-start)
  • border-right-style (liknar på border-end)

属性 för kantfärg:

  • border-color
  • border-before-color
  • border-after-color
  • border-start-color
  • border-end-color
  • border-top-color (liknar på border-before)
  • border-bottom-color (liknar på 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 (definierar sidbryggor, page breaks)
  • reference-orientation (definierar textens rotation inom 90")

Exempel

<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">
På CodeW3C.com hittar du alla webbutvecklingslärord du
behöver, från grundläggande HTML och XHTML till avancerad XML, XSL, Multimedia
och WAP.
</fo:block>

Resultat:

Se det föregående exemplet, om du vill skapa ett dokument med många rubriker och stycken, kommer du att behöva mycket kod.

Vanligtvis kombinerar XSL-FO-dokument inte formatinformation och innehåll som vi gjorde tidigare.

Med lite hjälp från XSLT kan vi lägga till formateringsinformation i mallar och skriva renare innehåll.

Du kommer att lära dig hur du använder XSLT-mallar för att kombinera XSL-FO i de efterföljande kapitlen i denna kurs.