0

我有下表,其中对齐出错,因为某些值中有括号。尽管表格是使用 html 呈现的,但我在 C# 中构建数据。我确实有可用的 jquery。请问有没有办法纠正这两种语言的对齐方式?

| VALUE  |
| 40%    |
| 20%    |
| (30%)  |
| 10%    |

请注意,由于括号,30% 的对齐方式不正确。

谢谢,詹姆斯

4

3 回答 3

1

您可以使用css

table tr td{
    text-align:center;
}

例子

如果你想让它们左对齐,但让非括号数字稍微缩进,你可以使用text-indent属性

例子

于 2013-07-24T00:15:31.923 回答
0

我能想到的两个解决方案:

1)始终添加括号,如果不需要它们,只需将它们与背景颜色相同(您可以通过将实际值包装在 a 中来做到这一点<span>)。如果有人在桌子上使用复制和粘贴,这将不起作用。

2)当括号不存在时添加空格而不是括号,并使用固定宽度的字体和保留的空格来设置表格的样式。

td {
    font-family: monospace;
    white-space: pre;
}

示例:http: //jsfiddle.net/GeraldS/SqB3X/

两种解决方案都不是很漂亮,我想我会选择 Khawer 的第二个例子,但这只有在访问者不更改浏览器中的字体大小时才有效。

于 2013-07-24T13:59:44.437 回答
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一样正确排列数字。

于 2013-07-24T14:13:24.197 回答