没有边框的html表格单元格

时间:2016-05-04 16:26:34

标签: javascript html5 css3 html-table

我想创建一个html表,如下所示。 我试过像frame =" hsides"规则="组"等等 似乎没什么用。对此有什么想法吗?

enter image description here

更新:这是代码。我在列之间需要更少的空间而在tbody上没有线。

<table class="grouped-columns-table" cellpadding="10" cellspacing="0">
   <thead>
      <tr>
          <th>Col A1</th>
          <th class=""></th><!-- SPACER -->
          <th>Col A2</th>
          <th class=""></th><!-- SPACER -->
          <th>Col B1</th>
      </tr>
  </thead>
 <tbody class="tb">
    <tr>
        <td>A1</td>
        <td class="content-group-spacer"></td><!-- SPACER -->
        <td>A2</td>
        <td class="content-group-spacer"></td><!-- SPACER -->
        <td>B1</td>
     </tr>
     <tr>
        <td>A1</td>
        <td class="content-group-spacer"></td><!-- SPACER -->
        <td>A2</td>
        <td class="content-group-spacer"></td><!-- SPACER -->
        <td>B1</td>
     </tr>
     <tr>
        <td>A1</td>
        <td class="content-group-spacer"></td><!-- SPACER -->
        <td>A2</td>
        <td class="content-group-spacer"></td><!-- SPACER -->
        <td>B1</td>
     </tr>
 </tbody>
</table>

.grouped-columns-table {
  border-collapse: collapse;
}

.content-group {
  border: 0;
}

.content-group-spacer {
    width: 1px;
}

.grouped-columns-table td:not(.content-group-spacer) {
    border: 0px solid #ccc;
    border-collapse: collapse;
    border-left: 1px solid #ccc;
    border-right: 1px solid #ccc;
    border-top: 0px solid #ccc;
    border-bottom: 0px solid #ccc;
}

tbody {
      border-top: 1px solid #ccc;
      border-bottom: 1px solid #ccc;
}

2 个答案:

答案 0 :(得分:1)

你大大超过了这一点。摆脱表示HTML(包括没有数据的数据单元格)。

您只需设置border-spacing,这样您的单元格就可以在您想要的位置之间留出空间,然后围绕要边框的单元格边缘设置边框。

.grouped-columns-table {
  border-collapse: seperate;
  border-spacing: 10px 0;
}
.grouped-columns-table tbody tr > * {
  border-left: solid black 1px;
  border-right: solid black 1px;
}
.grouped-columns-table tbody tr:first-child td {
  border-top: solid black 1px;
}
.grouped-columns-table tbody tr:last-child td {
  border-bottom: solid black 1px;
}
<table class="grouped-columns-table">
  <thead>
    <tr>
      <th>Col A1</th>
      <th>Col A2</th>
      <th>Col B1</th>
    </tr>
  </thead>
  <tbody class="tb">
    <tr>
      <td>A1</td>
      <td>A2</td>
      <td>B1</td>
    </tr>
    <tr>
      <td>A1</td>
      <td>A2</td>
      <td>B1</td>
    </tr>
    <tr>
      <td>A1</td>
      <td>A2</td>
      <td>B1</td>
    </tr>
  </tbody>
</table>

答案 1 :(得分:0)

您可以使用first-childlast-child选择器执行此操作,请参阅小提琴:https://jsfiddle.net/snpsp6as/1/

.tb > tr:last-child > td{border-bottom: 1px solid #ccc;}
.tb > tr:last-child > .content-group-spacer{border-bottom: none !important;}
.tb > tr:first-child > td{border-top: 1px solid #ccc;}
.tb > tr:first-child > .content-group-spacer{border-top: none !important;}