我有下表,其中对齐出错,因为某些值中有括号。尽管表格是使用 html 呈现的,但我在 C# 中构建数据。我确实有可用的 jquery。请问有没有办法纠正这两种语言的对齐方式?
| VALUE |
| 40% |
| 20% |
| (30%) |
| 10% |
请注意,由于括号,30% 的对齐方式不正确。
谢谢,詹姆斯
我能想到的两个解决方案:
1)始终添加括号,如果不需要它们,只需将它们与背景颜色相同(您可以通过将实际值包装在 a 中来做到这一点<span>
)。如果有人在桌子上使用复制和粘贴,这将不起作用。
2)当括号不存在时添加空格而不是括号,并使用固定宽度的字体和保留的空格来设置表格的样式。
td {
font-family: monospace;
white-space: pre;
}
示例:http: //jsfiddle.net/GeraldS/SqB3X/
两种解决方案都不是很漂亮,我想我会选择 Khawer 的第二个例子,但这只有在访问者不更改浏览器中的字体大小时才有效。
当您在服务器端 (C#) 上构建数据时(并且作为数字,它们最好右对齐),您可以在将数据发送到客户端之前附加一个空格。
(1) 将数据转换为字符串。如果括号是因为是负数,那么在转换为字符串时只需在正数上附加一个空格。如果在转换为字符串后有括号(格式的结果),则将空格附加到不以“)”结尾的字符串值。
例如:在格式化数字时:
string myFormat = "#0% ;(#0%)";
myValue.ToString(myFormat);
注意格式的正部分(第一部分)后面的空格。
例如:如果数据已经是字符串:
if (! stringValue.Substring(stringValue.Length - 1) == ")") {
stringValue += " ";
}
现在您的数据上有一个空格填充正数(或非括号字符串)。
(2) 一旦这个数据被带到客户端,你指定css text-align:right
到表格单元格。但是,如果您的字体是成比例的,那么这将不会对齐。因此,为这些单元格(或列)指定等宽字体。例如font-family: courier new
;我也发现了font-family: verdana
;也会像monospaced一样正确排列数字。