php - 按小数点对齐表格列中的小数数据,HTML5,CSS3

标签 php html css text-alignment decimal-point

我正在构建一个 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&#x2007;&#x2007;

为此,您需要设置字体,使其包含 U+2007。根据http://www.fileformat.info/info/unicode/char/2007/fontsupport.htm即使 Arial 也包含它,但恐怕这可能不适用于仍在使用的旧版 Arial。

3) 使用不间断空格并将其宽度设置为所需的位数,使用 ch 单元(定义为数字 0 的宽度),尽管该单元相对较新并且不被旧浏览器支持。示例:

123.4<span class=d2>&nbsp;</span>

.d2 { width: 2ch; display: inline-block; }

我可能会使用第一种方法。从原则上讲,它的缺点是当 CSS 关闭时,数据包含零,这意味着有关准确性的错误信息,而在其他方法中,“仅”关闭 CSS 会弄乱布局。

(很明显,数字必须具有相同的前进宽度,这样您才能完全对齐数字数据。这只是意味着用于值的字体必须具有该属性。大多数字体在这方面都可以,但是例如,Georgia、Constantia 和 Corbel 不会。)

关于php - 按小数点对齐表格列中的小数数据,HTML5,CSS3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11600838/

相关文章:

php - 如何检查一个字符串是否是另一个字符串的重新排序?

css - 将 float div 扩展到父容器的 100% 宽度

css - 选择表单时设置不透明度(可能使用 'background' 属性)

javascript - 分组交替行颜色与变化

php - 变量访问 - 通过 PHP 的 MySQL 不工作

php - 从我的 sql 查询中检查表

javascript - 如何防止渲染 <pre> 中编写的代码?

html - Youtube 视频 5*5 马赛克与 CSS?

css - 按钮加载指示器边框动画

html - div 内的 col-sm,一侧有边距