0

我从天线屋收到以下警告。

AHFCmd :WARNING: Error Level : 2
AHFCmd :WARNING: Error Code  : 10761 (2A09)
AHFCmd :WARNING: Invalid property value: column-width="proportional-column-width(4%)".

从代码

  <fo:table-column column-number="1" column-width="proportional-column-width(4%)"/>

网站似乎建议支持比例列宽

问候康泰

4

1 回答 1

1

proportional-column-width(4)会工作。proportional-column-width(4%)将不会。

如果您希望列是可用宽度的 4%,请使用column-width="4%"(请参阅https://www.w3.org/TR/xsl11/#column-width)。


我认为你是我见过的第一个尝试使用百分比而不是数字的人proportional-column-width(),你让我大吃一惊。

严格阅读 XSL 1.1 中的“数字”定义和XSL 1.1 建议 ( https://www.w3.org/TR/xsl11/#d0e5961proportional-column-width() ) 中的函数原型:

数字比例列宽(数字

将指示百分比是有效值,因为百分比是相对数字。脑洞大开。大概proportional-column-width()同一个表中的每个都需要是一个相对数值,以便它们可以加在一起。但是,这可能会导致无意义的定义,例如:

<fo:table layout="fixed" width="100%">
  <fo:table-column column=width="proportional-column-width(4%)" />
  <fo:table-column column=width="proportional-column-width(4%)" />
  <fo:table-body>...</fo:table-body>
</fo:table>

其中两个“4%”列各占宽度的 50%。

幸运的是,我的理智的定义proportional-column-width()包括:

表格宽度和列宽度之和之间的差异是可用的比例宽度。一种比例测量单位是可用比例宽度除以比例因子的总和。

如果比例宽度都是相对数字(实际上是长度),那么将可用的比例宽度除以长度将产生一个无单位的数字。无单位数字不会作为 的结果起作用proportional-column-width(),因此您需要返回proportional-column-width()仅是数字的值,以便函数可以返回宽度。

于 2020-02-17T16:48:28.697 回答