2017-05-28 100 views
1

我有以下XSL代碼,我想要實現的是將標題對齊到單元格的頂部,並將描述對齊到單元格的底部:XSL-FO,對齊表格單元格中的兩個塊

<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> 

我不知道爲什麼,但它似乎不適用於表中的所有單元格。

該代碼是否可以改進,以便轉換可以發生在所有單元格上?

+0

「display-align」屬性適用於'fo:table-cell'(和其他格式化對象),但**不能**到'fo:block'。你可以使用兩行代替(一個用於標題,一個用於描述)?你使用什麼格式化程序? – lfurini

回答

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無用。