想要理解这一点,我感到很困惑。我刚开始使用xsl-fo (apache-fop实现),我想要一个带有边框和内容填充的块,这样它就不会碰到边框。但是,当我添加填充时,填充是否也应用于下面的块?
<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>
为什么条变得缩进了上一块的填充量?如果我移除第一个块上的填充,一切都会正常吗?
发布于 2013-11-20 14:03:36
你应该做的是将边距设置为“0 0mm”,并在块上填充为“3 0mm”,如果你的意图是在边框之外没有空间,文本和边框之间有3 0mm的空间。
<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。
发布于 2013-11-20 06:22:52
尝试执行以下操作(未对此进行测试,因为我的Apache FOP安装不在可用范围内...)
编辑:现已测试完毕。填充仅应用于第一个块("FOO")。
在fo:inline元素中指定填充,如下所示:
<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元素,因为内部块是唯一需要它们的地方(至少在您的简单代码段中是这样)。外部块仅定义边框。如果有效,请让我知道。
https://stackoverflow.com/questions/20082238
复制相似问题