【问题标题】:How to center align a <td> in a <tr>?如何在 <tr> 中居中对齐 <td>?
【发布时间】:2017-10-21 12:28:27
【问题描述】:

我有以下代码,它在一个表格中显示了四个图像。 float: left; CSS 的原因是它们可以换行。 JSFiddle

<table>
    <tr>

        <td style="float: left; padding: 20px;">
            <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=600%C3%97300&w=600&h=300" />
            <div style="padding-top: 30px;">TEST TEXT #1</div>
        </td>

        <td style="float: left; padding: 20px;">
            <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=600%C3%97300&w=600&h=300" />
            <div style="padding-top: 30px;">TEST TEXT #2</div>
        </td>

        <td style="float: left; padding: 20px;">
            <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=600%C3%97300&w=600&h=300" />
            <div style="padding-top: 30px;">TEST TEXT #3</div>
        </td>

        <td style="float: left; padding: 20px;">
            <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=600%C3%97300&w=600&h=300" />
            <div style="padding-top: 30px;">TEST TEXT #4</div>
        </td>

    </tr>
</table>

但是,它们目前固定在表格行的左侧(这是可以理解的,因此使用了float: left CSS)。但是,有没有一种方法可以让

元素在 元素内居中对齐,从而获得浮动的环绕效果?

是的,我必须使用一张桌子。

【问题讨论】:

  • 一个简单的 在每个 td 开始标签之后应该可以工作,你测试了吗?
  • 我认为 align 作为 HTML 标记已被弃用?

标签: html css html-table alignment


【解决方案1】:

您可以在tr 上使用display: flex; flex-wrap: wrap; 而不是浮动td,这将导致相同的行为。然后您可以使用justify-content: center;td 居中。

tr {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
<table>
  <tr>

    <td style="padding: 20px;">
      <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=600%C3%97300&w=600&h=300" />
      <div style="padding-top: 30px;">TEST TEXT #1</div>
    </td>

    <td style="padding: 20px;">
      <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=600%C3%97300&w=600&h=300" />
      <div style="padding-top: 30px;">TEST TEXT #2</div>
    </td>

    <td style="padding: 20px;">
      <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=600%C3%97300&w=600&h=300" />
      <div style="padding-top: 30px;">TEST TEXT #3</div>
    </td>

    <td style="padding: 20px;">
      <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=600%C3%97300&w=600&h=300" />
      <div style="padding-top: 30px;">TEST TEXT #4</div>
    </td>

  </tr>
</table>

【讨论】:

  • 啊,谢谢。差不多了,但是有没有办法让它在缩小时仍然集中? i.imgur.com/bM8ClYt.png
  • @carefulnow 如果它解决了你的问题,现在你想集中整个表,那么你应该像 tr 一样对你的表进行更改
  • @carefulnow:只需将margin: auto 添加到表格中即可。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-18
  • 1970-01-01
  • 2015-10-07
  • 1970-01-01
  • 2015-02-11
  • 2012-11-02
  • 2014-05-22
相关资源
最近更新 更多