如何垂直对齐表数据

时间:2013-07-23 23:55:00

标签: html css

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

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

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

谢谢, 詹姆斯

3 个答案:

答案 0 :(得分:1)

您可以使用css

更正此问题
table tr td{
    text-align:center;
}

EXAMPLE

如果你想让它们保持对齐并且使非括号数稍微缩进,你可以使用text-indent属性

EXAMPLE

答案 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