我有下表,其中对齐方式出错,因为其中一些值包含括号。我在C#中构建数据,尽管该表是使用html呈现的。我确实有jquery可用。有没有办法纠正这两种语言中的对齐?
| VALUE |
| 40% |
| 20% |
| (30%) |
| 10% |
请注意由于括号,30%的对齐方式不正确。
谢谢, 詹姆斯
答案 0 :(得分:1)
您可以使用css
table tr td{
text-align:center;
}
如果你想让它们保持对齐并且使非括号数稍微缩进,你可以使用text-indent
属性
答案 1 :(得分:0)
我能想到的两个解决方案:
1)总是添加括号,如果不需要它们,只需使它们与背景颜色相同(您可以通过将实际值包装在<span>
中来实现)。如果有人在桌面上使用复制和粘贴,这将无效。
2)当它们不存在时添加空格而不是括号,并用固定宽度字体设置表格并保留空格。
td {
font-family: monospace;
white-space: pre;
}
示例:http://jsfiddle.net/GeraldS/SqB3X/
两种解决方案都不是很漂亮,我想我会选择Khawer的第二个例子,但这只有在访问者不改变浏览器字体大小的情况下才会有效。
答案 2 :(得分:0)
当您在服务器端(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 。