在表格内水平居中文本

Posted

技术标签:

【中文标题】在表格内水平居中文本【英文标题】:Horizontally Centering text inside a table 【发布时间】:2015-09-28 10:10:56 【问题描述】:

在 colspan 大于 1 的 TD 中,我无法让文本居中,我已经为每个标签添加了文本对齐中心,但什么也没有。

html:(我删除了所有不居中的项目,但留下了与此文本相关的所有标签)

div.OBJ 
  display: table-cell;
  text-align: center;

div.scroll 
  width: 100%;
  height: 600px;
  overflow-y: scroll;
  overflow-x: auto;
  text-align: center;

td 
  text-align: center;

table 
  border-collapse: collapse;
  table-layout: fixed;
  align: center;
  text-align: center;

a:link 
  color: #000000;
  text-decoration: none;
  text-align: center;

a:visited 
  color: #000000;
  text-decoration: none;
  text-align: center;

a:hover 
  color: #ff0000;
  text-decoration: underline;
  text-align: center;

div 
  text-align: center;

span 
  text-align: center;
<div class="scroll">
  <table border="1" style="width:100%">
    <tr id="ParentObject.id">
      <td id="ParentObject.id" colspan="object.size" style="background-color:object.bgColor" data-begin="object.begin" data-end="object.end">
        % multiply object.size colWidth as colSize %
        <div id="object.id" class="OBJ" style="width:colSize%">
          <a id="object.id" href="link" title="hover text">
            <span id="object.id" class="object">
                            object.name
                        </span>
          </a>
        </div>
      </td>
    </tr>
  </table>
</div>

【问题讨论】:

center text of table data connected with colspan="2" with .css " Select td with attribute colspan="2" " 的可能重复项 尝试添加div margin:auto;,因为上面设置了宽度。 可能的重复没有帮助,因为我正在使用 Django 使 colspans 的宽度可变。 @杰森 @Pangloss 不起作用 【参考方案1】:

你的问题是:

div.OBJ 
        display: table-cell;
        text-align: center;
    

display: table-cell 让元素表现得像 &lt;td&gt; 并且很可能继承了不同的东西。

【讨论】:

当我删除它时,它会将所有内容恢复到左中心,除了 colspan 大于 1 的那些。那些移近中心但有时离中心很远。 使用!IMPORTANT decleration【参考方案2】:

问题是你有div.OBJ 包含display: table-cell。以下是它被移除的样子:

div.OBJ 
  text-align: center;

div.scroll 
  width: 100%;
  height: 600px;
  overflow-y: scroll;
  overflow-x: auto;
  text-align: center;

td 
  text-align: center;

table 
  border-collapse: collapse;
  table-layout: fixed;
  align: center;
  text-align: center;

a:link 
  color: #000000;
  text-decoration: none;
  text-align: center;

a:visited 
  color: #000000;
  text-decoration: none;
  text-align: center;

a:hover 
  color: #ff0000;
  text-decoration: underline;
  text-align: center;

div 
  text-align: center;

span 
  text-align: center;
<div class="scroll">
  <table border="1" style="width:100%">
    <tr id="ParentObject.id">
      <td id="ParentObject.id" colspan="object.size" style="background-color:object.bgColor" data-begin="object.begin" data-end="object.end">
        % multiply object.size colWidth as colSize %
        <div id="object.id" class="OBJ" style="width:colSize%">
          <a id="object.id" href="link" title="hover text">
            <span id="object.id" class="object">
                            object.name
                        </span>
          </a>
        </div>
      </td>
    </tr>
  </table>
</div>

【讨论】:

我删除了显示:table-cell 它有点(它们在中心的左侧)将超过一列的 TD 中的文本居中,但一列的文本现在左对齐。 @analytalica

以上是关于在表格内水平居中文本的主要内容,如果未能解决你的问题,请参考以下文章

LaTeX:表格内换行与各种居中完美解决

excel中怎样使表格数据显示为水平居中和垂直居中?

excel中怎样使表格数据显示为水平居中和垂直居中?

如何在 div 块内居中文本(水平和垂直)?

如何在列内垂直和水平居中文本? [复制]

表格怎么让文字居中?