我在试图理解这一点时不知所措。我是使用 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>

为什么 BAR 会因前一个块的填充量而缩进?如果我删除第一个块上的填充,一切都会好吗?

最佳答案

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

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

如果 margin-bottom 是为了在元素之间留出空间,那么你可以在后面的元素上使用 space-after 或 space-before。

10-07 19:37
查看更多