FO 列表块更改样式

FO List Block change style

我正在使用 XSL FO 列表块来显示要点。是否可以更改 list-style-type 以显示正方形(或其他形状)?在HTML中是<ul style="list-style-type:square;">

代码:

<fo:list-block>
<fo:list-item>
 <fo:list-item-label>
   <fo:block>*</fo:block>
 </fo:list-item-label>
 <fo:list-item-body>
   <fo:block>Volvo</fo:block>
 </fo:list-item-body>
</fo:list-item>
<fo:list-item>
 <fo:list-item-label>
   <fo:block>*</fo:block>
 </fo:list-item-label>
 <fo:list-item-body>
   <fo:block>Saab</fo:block>
 </fo:list-item-body>
</fo:list-item>
</fo:list-block>

将您想要的字符替换为 *:

<fo:list-item-label>
  <fo:block color="blue" font-weight="bold" font-size="1.3em">✪</fo:block>
 </fo:list-item-label>

<ul style="list-style-type:square;"> 相比,这看起来工作量很大,但是:

  • 您通常只需要这样做一次,因为您是使用 XSLT 生成 XSL-FO
  • 您可以完全控制列表项标签的内容、大小、重量、颜色、对齐方式(参见 relative-align: https://www.w3.org/TR/xsl11/#relative-align)和位置(而且,如上所述,您通常只需要设置一次)
  • 如果需要,您可以通过在 XSLT
  • 中使用 position() 来更改每个列表项的项目符号颜色等
  • 当您查看编号列表项时,您会发现 xsl:number 可以轻松生成用于列表项标签的分层编号。 (如果您使用的是 AH Formatter,您还可以使用一组预定义的计数器样式:https://www.antennahouse.com/product/ahf66/ahf-ext.html#axf.counter-style。)