【问题标题】:html table with centered cells带有居中单元格的 html 表格
【发布时间】:2019-02-06 22:17:51
【问题描述】:

基本上我想要的是一个表格,一行,5个单元格...第一个/左单元格应该左对齐,最后一个/右单元格应该右对齐,中间3个单元格需要居中每个单元格之间的间距相等。表格本身是“100% 宽度,这就是单元格间距的来源。

我将如何写这个(使用 html / css)? “table”标签或“divs”等都是有效的,只要最终结果看起来正确,我并不介意采用哪种方法。

编辑: 问题是间距;表格本身不是问题,但仅在单元格上设置对齐方式将无法正常工作;单元格之间的空闲空间不是 100% 在单元格之间平均分配的。

我也不想指定单元格宽度,因为内容是动态的,并且无法事先知道需要多少宽度。

【问题讨论】:

  • 与其问如何写,不如尝试一下,发布它,然后问你做错了什么或问题是什么
  • 正如亚当所说,缩小您需要帮助的范围很有帮助。您可能可以创建一个 HTML 表格。很可能您可以对齐文本。空间是问题吗(我可以想象只是左对齐、右对齐和居中对齐可能会在边缘留下比在中心更多的空间)?为我们缩小一点……
  • 您在下面使用百分比设置宽度时看到我的答案了吗?这会在 5 个单元格之间均匀分布宽度……这不是您需要的吗?

标签: html html-table


【解决方案1】:

仅 HTML 版本

<table>
<tr>
   <td width="20%"></td>
   <td width="20%" align="center"></td>
   <td width="20%" align="center"></td>
   <td width="20%" align="center"></td>
   <td width="20%" align="right"></td>
</tr>
</table>

CSS 版本

<table>
<tr>
   <td style="width:20%;"></td>
   <td style="width:20%; text-align:center"></td>
   <td style="width:20%; text-align:center"></td>
   <td style="width:20%; text-align:center"></td>
   <td style="width:20%; text-align:right"></td>
</tr>
</table>

【讨论】:

  • 这些解决方案在技术上是正确的,但始终建议将样式与 HTML 分开,最好在样式表中,也可以在
  • 我以为我已经尝试过了,但我的 CSS 一定有问题...它现在可以工作了,谢谢!
  • 但是请重新考虑内联样式!这是非常糟糕的做法!我在下面的回答显示了如何使用不同的样式来实现相同的目标。此外,您将需要使用 table-layout:fixed;以确保某些浏览器在某些单元格中有更多内容时不会调整您的单元格大小。
  • @FluffyKitten 停止淹没每个 cmets,Stack Overflow 不是为了获得声誉,而是为了帮助其他人。您的解决方案非常好,我同意。
  • 但我只是想帮助@Jivago! OP 已经接受了您的解决方案,所以我不是在寻找声誉(因为 cmets 不算数),但他们真的不应该使用内联样式,因为这是非常糟糕的做法。我不知道 OP 或其他人会阅读哪些 cmets,所以我正在评论任何相关的帖子,因为这是一个非常重要的点,将来会帮助他们。
【解决方案2】:

如果您使用的是表格,请为每个单元格分配唯一的 id,然后根据需要使用 css 进行对齐,例如

HTML:

<td id="firstcell">...</td>
<td id="secondcell">...</td>
<td id="thirdcell">...</td>
<td id="fourthcell">...</td>
<td id="fifthcell">...</td>

CSS:

table {table-layout:fixed;}  /* ensure the widths are absolutely fixed at the specified width*/
td{ width: 20%;}  /* allocate space evenly between all 5 cells */
td#firstcell {text-align:left;}
td#secondcell, td#thirdcell, td#fourthcell {text-align:center;}
td#fifthcell {text-align:right;}

【讨论】:

    【解决方案3】:
    td
    {
        text-align:center;
    
    }
    td:first-child
    {
        text-align:left;   
    }
    
    td:last-child
    {
        text-align:right;
    }
    

    【讨论】:

      【解决方案4】:
      <style type="text/css">
      .five_columns {
          width: 100%;
      }
      .five_columns > div {
          width: 20%;
          float: left;
          text-align: center;
          overflow: auto;
      }
      .five_columns > div:first-child {
          text-align: left;
      }
      .five_columns > div:last-child {
          text-align: right;
      }
      </style>
      <div class="five_columns">
          <div>...</div>
          <div>...</div>
          <div>...</div>
          <div>...</div>
          <div>...</div>
      </div>
      

      overflow: auto 已设置,因为如果您严格希望宽度相同,那么除了在任何东西上强制滚动条之外,您真的无能为力(据我所知)长。

      【讨论】:

      • 我刚刚测试了它,因为我不熟悉表格布局,但结果是如果将一个足够长的完整字符串放在一个单元格中,它就会溢出 后面下一列,几乎就像溢出:隐藏。恕我直言,这很奇怪。
      • aaaaaand @FluffyKitten 删除了他的评论,所以现在看来​​我是在自言自语......
      • 对不起!我以为你的评论是针对 OP 的。我删除了我的评论,因为我错误地评论了你的帖子,我以为我是在跟进我的评论给其他人,我只是在没有检查的情况下回复了我的帖子……但他们已经删除了他们在同时回复你(他们建议根本不定义宽度会确保均匀分布!!)并不是要让你在那里看起来很孤独:-)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-22
      • 1970-01-01
      • 1970-01-01
      • 2011-11-30
      • 2011-10-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多