codecamp

XSL-FO region-start 对象

XSL-FO region-start 对象

XSL-FO 参考手册 XSL-FO 参考手册

XSL-FO 中,页面的左侧栏由 region-start 对象定义。


定义和用法

<fo:region-start> 对象定义了页面的左部区域(左侧栏)。

XSL-FO 使用下列元素来定义页面的区域:

  • <fo:region-body> 定义了主体区域
  • <fo:region-before> 定义了顶部区域(页眉)
  • <fo:region-after> 定义了底部区域(页脚)
  • <fo:region-start> 定义了左部区域(左侧栏)
  • <fo:region-end> 定义了右部区域(右侧栏)

注意:region-before、region-after、region-start 以及 region-end 都是 region-body 的一部分。为了避免 region-body 内的文本覆盖其它区域的文本, region-body 的边距至少必须与上述四个子区域的尺寸相同。

注意:根据 XSL-FO 1.0 版本的推荐标准,padding 和 border-width 属性必须为 0。


语法

<fo:region-start>
<!--
Contents:EMPTY
-->
</fo:region-start>

属性

属性 [A-B] 属性 [C-Z]
background-attachment clip
background-color display-align
background-image extent
background-repeat overflow
background-position-horizontal padding-after
background-position-vertical padding-before
border-after-color padding-bottom
border-after-style padding-end
border-after-width padding-left
border-before-color padding-right
border-before-style padding-start
border-before-width padding-top
border-bottom-color region-name
border-bottom-style reference-orientation
border-bottom-width writing-mode
border-end-color  
border-end-style  
border-end-width  
border-left-color  
border-left-style  
border-left-width  
border-right-color  
border-right-style  
border-right-width  
border-start-color  
border-start-style  
border-start-width  
border-top-color  
border-top-style  
border-top-width  

实例 1

XSL-FO 使用名为 "Page Masters" 的页面模板来定义页面的布局。每个模板必须拥有一个唯一的名称:

<fo:simple-page-master master-name="intro">
<fo:region-body margin="5in" />
</fo:simple-page-master>

<fo:simple-page-master master-name="left">
<fo:region-body margin-left="2in" margin-right="3in" />
</fo:simple-page-master>

<fo:simple-page-master master-name="right">
<fo:region-body margin-left="3in" margin-right="2in" />
</fo:simple-page-master> 

在上面的实例中,三个 <fo:simple-page-master> 元素,定义了三个不同的模板。每个模板(page-master)都有不同的名称。

第一个模板名为 "intro"。它可作为介绍页面的模板使用。

第二个和第三个模板名为 "left" 和 "right"。它们可作为偶数和奇数页码的页面模板使用。

实例 2

这是从某个 XSL-FO 文档中提取的一个片断:

<fo:simple-page-master master-name="A4"
page-width="297mm" page-height="210mm"
margin-top="1cm" margin-bottom="1cm"
margin-left="1cm" margin-right="1cm">
<fo:region-body margin="3cm"/>
<fo:region-before extent="2cm"/>
<fo:region-after extent="2cm"/>
<fo:region-start extent="2cm"/>
<fo:region-end extent="2cm"/>
</fo:simple-page-master>

上面的代码定义了一个名称为 "A4" 的 "Simple Page Master Template"。

页面的宽度是 297 毫米,高度是 210 毫米。

页面的四个边距(上边距、下边距、左边距、右边距)均为 1 厘米。

主体的边距是 3 厘米(四个边都是)。

主体的 before、after、start 以及 end 区均为 2 厘米。

上面的实例中的主体的宽度可通过页面宽度减去左右边距以及 region-body 的边距来计算得出:

297mm - (2 x 1cm) - (2 x 3cm) = 297mm - 20mm - 60mm = 217mm

请注意,region(region-start 和 region-end)没有被计算进来。正如之前讲解过的,这些区(region)是主体的组成部分。


XSL-FO 参考手册 XSL-FO 参考手册
XSL-FO region-end 对象
XSL-FO repeatable-page-master-alternatives 对象
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录
XSL-FO 参考手册

XSL-FO 对象列表

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }