将表格对齐,使(td)居中并将单元格内的文本左对齐

3

我正在尝试对齐一个表格,将 td 居中,并使 td 内的文本左对齐;

我尝试使用 flex 将其居中对齐,这样有点效果了,但是无法左对齐。

我看到了使用 padding-left: 50% 的解决方案,但这并不符合我的需求。

table {
    color: #212121;
    font-size: .875rem;
    margin: 1.25rem 0; 
    border-collapse: collapse;
    table-layout: fixed;
    width: 100%;
    border: 1px solid red;
}


tr {
    display:flex;   
    width: 100%;
    justify-content: center;
}

tr td { 
    max-width: 50%;
    text-align:left;
    border: 1px solid blue;
}
<table>
  <tbody>
    <tr>
      <td>lorem ipsum</td>
      <td>alpha</td>
     </tr> 
     <tr>
      <td>lorem ipsum ipsum</td>
      <td>teata ipsum alpha</td>
     </tr>                
   </tbody>
</table>

我想要获得的是:

边框线只是用于距离比较。

输入图像描述


你是否期望得到这样的输出 https://jsfiddle.net/78h1Lv02/1/ ? - Karuppiah RK
或者像这样 https://jsfiddle.net/78h1Lv02/2/ ? - Karuppiah RK
不,我更新了一张图片。 - user3541631
3个回答

1
您可以在表格中插入标签,HTML代码:
 <table>
      <tbody>
        <tr>
          <td><span>lorem ipsum</span></td>
          <td><span>alpha</span></td>
         </tr> 
         <tr>
          <td><span>lorem ipsum ipsum</span></td>
          <td><span>teata ipsum alpha
            teata ipsum alpha</span></td>
         </tr>                
       </tbody>
    </table>

CSS代码:

table {
    color: #212121;
    font-size: .875rem;
    margin: 1.25rem 0; 
    border-collapse: collapse;
    table-layout: fixed;
    width: 100%;
    border: 1px solid red;
}


tr {
    display:flex;   
    justify-content: center;
    text-align:center;

}
tr td{
    border: 1px solid blue;
    width:50%;

}
tr td span{ 
   display:inline-block; 
   width:50%;  
   text-align:left; 
    white-space:break;
}

这个结果的链接: https://jsbin.com/huvitefeqe/edit?html,css,js,output


0

JsFiddle

{{链接1:JsFiddle}}

tr {
    display:flex;   
    width: 50%;
    margin: 0 auto;
    justify-content: center;
}

tr td { 
   max-width: 50%;
   text-align:left;
   border: 1px solid blue;
   width: 100%
}

在 `tr` 元素中添加 `width: 50%; margin: 0 auto;`,并在 `tr td` 元素中添加 `width: 100%`。希望您期望的输出是这样的。
您可以看到 `td` 在表格中居中,文本也与 `td` 的左侧对齐。

不,我更新了一个图片以更清晰地表达,边框线仅用于距离比较。 - user3541631

0

边框间距可以解决这个问题。

table {
    color: #212121;
    font-size: 0.875rem;
    margin: 1.25rem 0;
    border-collapse: separate;
    table-layout: fixed;
    width: 100%;
    border: 1px solid red;
    border-spacing: 5px 0;
}

td {
  padding: 10px 10px;
  border: 1px solid blue;
}
<table>
  <tbody>
    <tr>
      <td>lorem ipsum</td>
      <td>alpha</td>
     </tr> 
     <tr>
      <td>lorem ipsum ipsum</td>
      <td>teata ipsum alpha</td>
     </tr>                
   </tbody>
</table>


该内容没有固定的宽度来使用预定义的填充,建议的解决方案也不是居中的。 - user3541631

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接