如何让 HTML tr(table 行)中的文本居中?

How can I get text in an HTML tr (table row) to center?

我正在像这样在 StringBuilder 中构建一些 HTML:

builder.Append("<tr align='center' valign='top' class=\"skyBlueBackground textAlignCenter\">");
List<String> columnHeadings = GetColumnHeadings(monthCount, _begindate);
foreach (String s in columnHeadings)
{
    if (s.Equals("Grand Total"))
    {
        builder.Append("<td align='left' valign='top' class=\"forestGreenBackground whiteText\"><b>");
    }
    else
    {
        builder.Append("<td align='left' valign='top'><b>");
    }
    builder.Append(s);
    builder.Append("</b></td>");
}
builder.Append("</tr>");

尽管我有 class 用于居中文本:

builder.Append("</style>");
. . .
builder.Append(".textAlignCenter { text-align: center; }");
builder.Append("</style>");

...文本左对齐;它的工作原理除此之外(天蓝色背景),它只是保持向左磁化:

我必须怎么做才能使文本居中?

您应该在 TD 而不是 TR 上设置 textAlignCenter,或者将 CSS 定义更改为:

builder.Append(".textAlignCenter td { text-align: center; }");

并且您应该从您的 TD 中删除明确的 "align='left'",因为这仍然会否决 CSS。

如果您询问如何垂直对齐文本,您可以使用 vertical-align CSS 属性。有关详细信息,请参阅 here

您也可以使用 valign 属性,但在 HTML5 中已弃用,因此不推荐使用。

你的问题很简单,你已经正确创建了 css class 属性 .textAlignCenter,但是你的属性 align="left" 在 <td>有样式优先。


我认为你可以做两个解决方案:

  1. 将 class .textAlignCenter 放在要对齐的 td 上 中心.
  2. 去掉td的align="center",加一个css之类的 这个:

    tr td {text-align:left}
    
    tr td.textAlignCenter {text-align:center}
    

最后一个解决方案覆盖了最后一个样式。