我正在构建一个 wordpress 插件,它生成一个 HTML 表格并通过短代码发送到 gravityforms html block 。
我的问题是单元格内容可以包含:
- 23.24
- 1,234.665
- 123.4
等...
请注意不同的小数位数。
是否有非黑客和最佳实践方法按小数点对齐此列数据?在这种情况下,Aligning right 将不起作用。
插入 0 是 Not Acceptable ,因为这表示不存在的准确度。
如您所见,我尝试在 td 元素中使用 align="char"char="."
但没有成功。
任何人都可以提供帮助,我们将不胜感激。
非常感谢。
有没有办法在不实际打印到屏幕的情况下使用 printf("%8.3f",d1)
或类似的方法?例如构造变量 d1 供以后使用但实际上不打印它?
最佳答案
没有直接的方法可以做到这一点。 HTML 4.01 有 align=char
,但没有任何浏览器支持。 CSS 2.0 有一个对应物,使用 text-align
属性,同样缺乏支持,所以它从 CSS 2.1 中删除。 CSS3 草案有一个很好的对齐系统,但如果没有(正确的)实现,则表示有被从规范中删除的危险。
作为一种变通方法,您可以用不可见的内容(空白)右填充值,这样当值右对齐时,小数点也会对齐。有几种方法可以尝试实现这一点:
1) 使用数字 0 但在其上设置样式,使其不可见,例如
123.4<span class=s>00</span>
与
.s { visibility: hidden; }
2) 使用 FIGURE SPACE U+2007,定义为与数字等宽(当数字等宽时),例如
123.4  
为此,您需要设置字体,使其包含 U+2007。根据http://www.fileformat.info/info/unicode/char/2007/fontsupport.htm即使 Arial 也包含它,但恐怕这可能不适用于仍在使用的旧版 Arial。
3) 使用不间断空格并将其宽度设置为所需的位数,使用 ch
单元(定义为数字 0 的宽度),尽管该单元相对较新并且不被旧浏览器支持。示例:
123.4<span class=d2> </span>
与
.d2 { width: 2ch; display: inline-block; }
我可能会使用第一种方法。从原则上讲,它的缺点是当 CSS 关闭时,数据包含零,这意味着有关准确性的错误信息,而在其他方法中,“仅”关闭 CSS 会弄乱布局。
(很明显,数字必须具有相同的前进宽度,这样您才能完全对齐数字数据。这只是意味着用于值的字体必须具有该属性。大多数字体在这方面都可以,但是例如,Georgia、Constantia 和 Corbel 不会。)
关于php - 按小数点对齐表格列中的小数数据,HTML5,CSS3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11600838/