charoff属性已从HTML5中移除且从未被浏览器实现,完全不可用;它本意是配合align="char"和char控制字符对齐偏移,但所有主流浏览器均忽略该属性,应使用CSS text-align: "."等现代方案替代。

charoff 属性在现代前端开发中基本没有实用价值,它已从 HTML5 中移除,且所有主流浏览器均不支持。
charoff 是什么:对齐字符的偏移控制
它本意是配合 align="char" 和 char 使用,让单元格内容以某个特定字符(比如小数点 "." 或大写字母 "M")为基准线,再向左或向右偏移若干字符宽度。例如 char="." + charoff="2" 表示“小数点右侧两个字符位置对齐”。
但这个逻辑只存在于 HTML4/XHTML 规范里,从未被浏览器真正实现过。
- 必须同时设置
align="char"和char,charoff才有意义 —— 否则会被忽略 - 负值表示向左偏移(如
charoff="-1"),正值向右 - 单位是“字符宽度”,不是像素或 em,实际渲染不可控
为什么现在完全不能用
不是兼容性差,而是根本没实现过:
-
charoff在 HTML5 中被明确废弃,<th>、<td>、<tr>、<thead>、<col>等所有曾允许该属性的标签,HTML5 都已移除其定义 - Chrome、Firefox、Safari、Edge —— 无一解析或响应
charoff,设了也等于没设 - 即使你写
<td align="char" char="." charoff="2">123.45</td>,浏览器仍按默认方式渲染
替代方案:用 CSS 实现真正的字符对齐
如果真需要小数点对齐(比如财务表格),唯一可靠路径是 CSS:
- 给数字列加
text-align: right,再用等宽字体(如font-family: monospace)保证数字位数对齐 - 更精确的做法:把数字拆成整数和小数两部分,用
display: inline-block+text-align分别控制 - CSS
text-align: "."(带字符串值)已在部分浏览器支持(Chrome 117+、Safari 17.4+),但仍是实验性特性,需加前缀或谨慎评估兼容范围
例如:
td.number { text-align: "."; } —— 这才是当前可行的字符对齐解法。
别在项目里写 charoff,它不是“暂时不支持”,而是“已被放弃且从未活过”。真正要对齐字符,得靠 CSS 的演进和字体控制,而不是翻旧规范找幽灵属性。

















