XSL-FO,对齐表格单元格中的两个块

时间:2017-05-28 18:17:02

标签: xsl-fo

我有以下XSL代码,我想要实现的是将标题与单元格的顶部对齐,并将描述对齐到单元格的底部:

<fo:table-cell>                        
    <fo:block display-align="before">
        <xsl:value-of select="headline" />
    </fo:block>
    <fo:block display-align="after">
        <xsl:value-of select="description" />                            
    </fo:block>
</fo:table-cell>

我不知道为什么,但它似乎不适用于表格中的所有单元格。

是否可以改进此代码,以便可以对所有单元进行转换?

1 个答案:

答案 0 :(得分:1)

正如Ifurini所建议的那样,最好的解决方案可能是将表格单元分成两行。如果这不是你想要的,试试这个:

<fo:table table-layout="fixed">
    <fo:table-column/>
    <fo:table-body line-height="16pt">
        <fo:table-row height="100pt">
            <fo:table-cell>
                <fo:block-container height="50pt" display-align="before">
                    <fo:block>Top</fo:block>    
                </fo:block-container>
                <fo:block-container height="50pt" display-align="after">
                    <fo:block >Bottom</fo:block>    
                </fo:block-container>
            </fo:table-cell>
        </fo:table-row>
    </fo:table-body>
</fo:table>

因此在display-align中使用block-conainer。但是你必须给出某种高度限制,否则容器只会包含它的内容,使display-align无用。