col 元素的 char 属性在 html5 中已被废弃且现代浏览器完全不支持;替代方案是使用 css 的 text-align: "decimal"(仅适用于 td/th),或通过预处理将数字拆分为整数与小数部分并用等宽字体+右对齐实现精准对齐。

col 元素的 char 属性已失效,别再用了
现代浏览器中,col 的 char 属性完全不生效——它在 HTML5 中被明确标记为“已废弃”,且没有实际渲染效果。如果你发现表格里用 <col char="."> 试图让数字按小数点对齐却没反应,不是写法错了,是这个属性本身已被抛弃。
替代方案:用 CSS 的 text-align + char 值(仅限 Firefox)
CSS 有个同名的 text-align: char,但支持极差:目前只有 Firefox 支持,Chrome、Safari、Edge 均无视该值。即使你写成 text-align: char; text-align-last: char; char: ".";,其他浏览器也会回退到默认左/右对齐。
-
char对齐只对display: table-cell或内联元素有效(比如<td>),对 <code><col>无意义 - 必须配合
text-align: char和char: "."一起用,单独设char不触发对齐 - Firefox 中需确保内容是纯文本或可换行的内联内容;含
<div> 或块级子元素会失效 <h3>真正靠谱的做法:用 <code>decimal类型的text-align(CSS3)W3C 推荐用
text-align: "decimal"(注意带引号,是字符串值),这是唯一被广泛支持的数值小数点对齐方式,但仅适用于<td>/<code><th> 单元格,不能写在 <code><col>上。td.num { text-align: "decimal"; }注意:
"decimal"是 CSS 字符串字面量,引号不能省;它会让所有单元格内容按第一个小数点(或指定char)对齐,但依赖字体等宽性 —— 如果数字用了非等宽字体(如系统默认的 sans-serif),视觉上仍可能错位。更稳妥的工程实践:预处理 + 左右分列
遇到复杂对齐需求(比如金额列含货币符号、千分位逗号、动态精度),CSS 的
"decimal"容易失准。此时建议放弃纯样式方案:- 后端或 JS 把数字拆成两部分:
整数部分和小数部分,分别放入两个<span></span> - 用
display: flex或float: right让小数部分右贴齐,整数部分左对齐 - 或者统一补零、转字符串、用等宽字体(
font-family: "SFMono-Regular", Consolas, monospace)+text-align: right
浏览器兼容性、字体渲染、空格处理这些细节,比纠结一个废弃的
char属性要实在得多。 - 后端或 JS 把数字拆成两部分:











