【问题标题】:tbody border is not flush with table headertbody 边框不与表头齐平
【发布时间】:2020-05-11 11:27:58
【问题描述】:

我无法使 tbody 边框不超过整个宽度。有没有办法解决它?谢谢

PS:还有其他问题,例如空的“.cell” div 大小不正确,但是我不确定您是否可以发布多问题问题。所以让我们专注于上面的问题。

table { 
  box-sizing: border-box;
  border-collapse: collapse;
  margin-bottom: 2000px;
}

th {
  background-color: white;
  position: sticky;
  top: 0;
  padding: 0;
  border: 0;
}

.cell {
  box-sizing: border-box;
  display: inline-block;
  height: 100%;
  width: 100%;
  padding: 15px;
  background-color: red;
}

th:first-of-type > .cell {
  border-radius: 5px 0 0 0;
}

th:last-of-type > .cell {
  border-radius: 0 5px 0 0;
}

td {
  border: 1px solid blue;
  background-color: #fff;
  padding: 15px;
}

tbody {
  border: 2px solid green;
  box-sizing: border-box;
}
<table>
<thead>
  <tr>
    <th><div class="cell"></div></th>
    <th><div class="cell">aaaaaa</div></th>
    <th><div class="cell">aaaa</div></th>
  </tr>
</thead>
<tbody>
  <tr>
    <td>aaa</td>
    <td>aaaaaa</td>
    <td>aaaa</td>
  </tr>
  <tr>
    <td>aaa</td>
    <td>aaaaaa</td>
    <td>aaaa</td>
  </tr>
  <tr>
    <td>aaa</td>
    <td>aaaaaa</td>
    <td>aaaa</td>
  </tr>
</tbody>
</table>

【问题讨论】:

  • padding: 15px on &lt;td&gt; 也应该应用于&lt;th&gt;。任何单元格上的填充就像一个边距。如果您对内容应用填充(例如.cell),则结果不统一。
  • 我需要用 .cell div 覆盖整个 以制作圆角,并使用原始 来掩盖底层表格,该表格在由圆角。

标签: css html-table sticky html-tbody


【解决方案1】:

我假设圆角是您将&lt;div&gt; 放在&lt;th&gt; 中的原因。如果你想要圆角,那么你需要使用以下样式:

table { border-collapse:separate; border-spacing:0; border: 0; }

该演示有一些可以调整的额外更改。

演示

table {
  border-collapse: separate;
  border-spacing: 0;
  margin-bottom: 2000px;
  border: 0;
}

thead {
  position: sticky;
  top: 0;  
}

th {
  border: 1px solid red;
  background-color: red;
  padding:15px;
}

th:first-of-type {
  border-top-left-radius: 6px;
}

th:last-of-type {
  border-top-right-radius: 6px;
}

td {
  border: 1px solid blue;
  background-color: #fff;
  padding: 15px;
}
<table>
  <thead>
    <tr>
      <th></th>
      <th>aaaaaa</th>
      <th>aaaa</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>aaa</td>
      <td>aaaaaa</td>
      <td>aaaa</td>
    </tr>
    <tr>
      <td>aaa</td>
      <td>aaaaaa</td>
      <td>aaaa</td>
    </tr>
    <tr>
      <td>aaa</td>
      <td>aaaaaa</td>
      <td>aaaa</td>
    </tr>
  </tbody>
</table>

【讨论】:

  • 圆角是用 div 完成的,因为我需要用 白色背景隐藏底层表格(滚动时通过圆度达到峰值)。但这不是我遇到的问题。问题是 tbody 边框超出了 thead 的宽度。
  • 你真的看过我的演示了吗?从我在 Chrome 和 Firefox PC 上看到的情况来看,你的例子在这两个方面都失败了,而我的例子在第一个问题上失败了(几乎看不到边框)
猜你喜欢
相关资源
最近更新 更多
热门标签