首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么xsl-fo填充被应用于其他块?

为什么xsl-fo填充被应用于其他块?
EN

Stack Overflow用户
提问于 2013-11-20 05:17:46
回答 2查看 11.5K关注 0票数 4

想要理解这一点,我感到很困惑。我刚开始使用xsl-fo (apache-fop实现),我想要一个带有边框和内容填充的块,这样它就不会碰到边框。但是,当我添加填充时,填充是否也应用于下面的块?

代码语言:javascript
运行
复制
<fo:page-sequence master-reference="report-page">
<fo:flow flow-name="xsl-region-body">

    <fo:block border="1px solid black" font-size="8pt" margin-bottom="3mm" padding="3mm" >
        <fo:block font-weight="bold">FOO</fo:block>
        <fo:block>ANOTHER BLOCK</fo:block>
    </fo:block>

    <fo:block font-size="8pt">BAR</fo:block>
</fo:flow>

为什么条变得缩进了上一块的填充量?如果我移除第一个块上的填充,一切都会正常吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-20 14:03:36

你应该做的是将边距设置为“0 0mm”,并在块上填充为“3 0mm”,如果你的意图是在边框之外没有空间,文本和边框之间有3 0mm的空间。

代码语言:javascript
运行
复制
<fo:block border="1px solid black" font-size="8pt" margin="0mm" padding="3mm">
    <fo:block font-weight="bold">FOO</fo:block>
</fo:block>

如果边距-底部的目的是在元素之间留出空格,那么您应该在下面的元素上使用空格-after或space - then。

票数 7
EN

Stack Overflow用户

发布于 2013-11-20 06:22:52

尝试执行以下操作(未对此进行测试,因为我的Apache FOP安装不在可用范围内...)

编辑:现已测试完毕。填充仅应用于第一个块("FOO")。

在fo:inline元素中指定填充,如下所示:

代码语言:javascript
运行
复制
<fo:block border="1px solid black" margin-bottom="3mm">
 <fo:inline padding="3mm" font-size="8pt" font-weight="bold"> 
  <fo:block>FOO</fo:block>
 </fo:inline>
</fo:block>

此外,我已经将font-weight和font-size属性移到了inline元素,因为内部块是唯一需要它们的地方(至少在您的简单代码段中是这样)。外部块仅定义边框。如果有效,请让我知道。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20082238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档