如何设置只有部分边框间距的表格?

时间:2017-02-03 10:01:16

标签: html css html-table border-spacing

我想创建一个只有部分分隔边框的表格。 thead上方和下方的边界应该没有空格。但是其中的其他人应该被一个小空间隔开。

不幸的是,border-spacing样式仅适用于整个表:https://developer.mozilla.org/en-US/docs/Web/CSS/border-spacing

例如,在下文中,我希望仅在border-toph2.1 h2.2之间留出空格。这可能吗?

HTML:

<table>
  <thead>
    <tr>
      <th rowspan="2">h1</th>
      <th colspan="2">h2</th>
    </tr>
    <tr>
      <th>h2.1</th>
      <th>h2.2</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>b1</td>
      <td>b2.1</td>
      <td>b2.2</td>
    </tr>
    <tr>
      <td>b1</td>
      <td>b2.1</td>
      <td>b2.2</td>
    </tr>
  </tbody>
</table>

CSS:

table {
  border-collapse: separate;
}

th,
td {
  vertical-align: top;
}

thead tr:first-child th {
  border-top: 2px solid;
}

thead tr:not(:first-child) th {
  border-top: 1px solid;
}

tbody tr:first-child td {
  border-top: 1px solid;
}

tbody tr {
  border-top: 1px solid;
}

小提琴:https://jsfiddle.net/6ov4hadd/

修改

这是一个更明智的例子。

小提琴:https://jsfiddle.net/Lnk929q4/

我希望看起来像一张#34;书桌&#34;:

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以尝试将两个不同的表用于头部和身体部位。像这样的东西

https://jsfiddle.net/6ov4hadd/1/

        <table id = "table1">
          <thead>
            <tr>
              <th rowspan="2">h1</th>
              <th colspan="2">h2</th>
            </tr>
            <tr>
              <th>h2.1</th>
              <th>h2.2</th>
            </tr>
          </thead>
          </table>
          <table>
          <tbody>
            <tr>
              <td>b1</td>
              <td>b2.1</td>
              <td>b2.2</td>
            </tr>
            <tr>
              <td>b1</td>
              <td>b2.1</td>
              <td>b2.2</td>
            </tr>
          </tbody>
        </table>