这是我的问题,我有一个这样的表
This is a column header (A) | Another Column header (B) | Header (C) | Another column Header (D) -------------------------------------------------------------------------------------------------- Value A | Value B | Value C | Value D
事实上,A列和C列中的值可能很长,而B和D中的值可能非常短。我不介意标题或值是否包装 - 所以理想情况下我希望一个典型的表看起来像下面的
This is a column header (A) | Another | Header (C) | Another | Column | | column | header (B) | | Header (D) ---------------------------------------------------------------------------------------------------------- Value is very long and verbose, bla bla | Value B | Value C - this to is quite long | Value D bla bla bla - see it wrapped | | |
基本上,我希望列标题将优先包装到表数据单元格中的值。我不能简单地将wrap-option="no-wrap"
属性应用于表格单元格 - 因为页面不够宽,无法容纳所有长文本。
我已尝试为列指定proportional-column-width
属性 - 但这并不理想,因为我不知道在所有情况下哪些列将包含最长的文本。
我目前提出的最佳解决方案是在列标题文本中明确地添加换行符,但这会产生不必要的副作用,它似乎会使列宽增加相当多。有关示例,请参阅http://snipplr.com/view/37957/xslfo-to-make-a-table/。这会产生此输出http://imagebin.org/106996。请注意第3,4,5,6和7列似乎有相当大的填充,这意味着第1列和第2列比它们更窄。
非常感谢任何帮助。
PS - 我正在使用Ibex渲染引擎http://www.xmlpdf.com
答案 0 :(得分:1)
我不确定您正在使用哪种渲染引擎。但如果它支持table-layout="auto"
(大多数商业引擎都支持),这可能会给你一个比你现在得到的结果更好的结果。没有任何明确的换行符。
请参阅XSL specification for table-layout property和相应的CSS2 specification。