W3C HTML 网页标准教程

XSL-FO 块区域

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

图示:

XSL-FO Block 块区域图示

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">
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 (定义分页符,page breaks)
  • reference-orientation (定义 90" 内的文字旋转)

实例

<fo:block
    font-size="14pt" font-family="verdana" color="red"
    space-before="5mm" space-after="5mm">
W3chtml
</fo:block>

<fo:block
    text-indent="5mm"
    font-family="verdana" font-size="12pt"
    space-before="5mm" space-after="5mm">
At W3chtml you will find all the Web-building tutorials you
need, from basic HTML and XHTML to advanced XML, XSL, Multimedia
and WAP.
</fo:block>

结果:

请看上面的例子,如果要生成一个拥有许多标题和段落的文档,那么将会需要非常多的代码。

通常,XSL-FO 文档不会像我们刚才所做的那样对格式化信息和内容进行组合。

通过 XSLT 的些许帮助,我们就可以把格式化信息置入模板,然后编写出更纯净的内容。

您会在本教程后面的章节学习到如何使用 XSLT 模板来组合 XSL-FO。

收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
  • 评论
36人参与,11条评论
  • 最新评论
2022年9月26日 1:37 [湖南省长沙市网友]

杨同学小学生,

2021年11月15日 0:31
1 [安徽省网友]

夏雨是个大傻逼,吃屎的东西

夏宇是lj

2021年6月7日 1:44 [安徽省网友]
1 [安徽省网友]

夏雨是个大傻逼,吃屎的东西

2 不谢 [安徽省池州市网友]

???????

2021年6月7日 1:41 不谢 [安徽省池州市网友]
1 [安徽省网友]

夏雨是个大傻逼,吃屎的东西

2 可恶啊 [安徽省网友]

一吃一麻袋

3 ZHJjt [安徽省池州市网友]

66666666666666666666666666666666666666666666666666666666666666666666666

2021年6月7日 1:40 ZHJjt [安徽省池州市网友]
1 [安徽省网友]

夏雨是个大傻逼,吃屎的东西

2 可恶啊 [安徽省网友]

一吃一麻袋

66666666666666666666666666666666666666666666666666666666666666666666666

2021年6月7日 1:40 ZHJjt [安徽省池州市网友]
1 可恶啊 [安徽省网友]

我心如铁,坚不可摧 智勇双全,我心飞翔

傻不拉几的

2021年6月7日 1:40 不谢 [安徽省池州市网友]
1 [安徽省网友]

夏雨是个大傻逼,吃屎的东西

2021年6月7日 1:39 中也 [安徽省池州市网友]
1 可恶啊 [安徽省网友]

我心如铁,坚不可摧 智勇双全,我心飞翔

傻逼如你

2021年6月7日 1:38 可恶啊 [安徽省网友]

我心如铁,坚不可摧
智勇双全,我心飞翔

2021年6月7日 1:37 可恶啊 [安徽省网友]
1 [安徽省网友]

夏雨是个大傻逼,吃屎的东西

一吃一麻袋

2021年6月7日 1:36 [安徽省网友]

夏雨是个大傻逼,吃屎的东西

按钮 内容不能为空!
立刻说两句吧! 查看11条评论