当table遇上border-spacing,如何填补表格中间空白

当table遇上border-spacing,如何填补表格中间空白


首先要从吐槽说起,有个非常坑爹的designer伤不起了

来看效果图


这效果= =

我想吐槽,我给table加了属性

  1. border-collapseseparate;
  2. border-spacing10px 5px;
让它的title有了中间的空格。


变成了这样的效果= 。=



如何把中间的空当填上呐?我各种犯愁啊

尝试方法1:{

使用ul li +div 的方法。。。。原来是table 改起来太麻烦

}


最终方法!!!------使用after元素。

      position: relative;
      &:after {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 100%;
        right: -10px;
        background-color: @pr-light-blue;
        content: "";
      }

终于完美解决啊。。


晒一下所有的table代码

    <table class="prTaxBracketSettings-selection-table prTable">
      <thead>
        <tr>
          <th class="prTaxBracketSettings-selection-table-head-column" data-ng-repeat="column in columns">
            <span data-ng-bind="column"></span>
          </th>
        </tr>
      </thead>
      <tbody>
        <tr class="prTaxBracketSettings-selection-table-row" data-ng-repeat="row in taxBrackets" data-ng-class="{'prTaxBracketSettings-selection-table-row--selected':row.rate === taxBracket}" data-ng-click="select(row)">
          <td class="prTaxBracketSettings-selection-table-data-column">
            <span data-ng-bind-template="{{row.rate}}%"></span>
          </td>
          <td class="prTaxBracketSettings-selection-table-data-column">
            <span data-ng-bind-template="{{row.singleMin | assetValue}}{{row.singleMax?' to ' + (row.singleMax | assetValue ): '+'}}"></span>
          </td>
          <td class="prTaxBracketSettings-selection-table-data-column">
            <span data-ng-bind-template="{{row.mjMin | assetValue}}{{row.mjMax?' to ' + (row.mjMax | assetValue ): '+'}}"></span>
          </td>
          <td class="prTaxBracketSettings-selection-table-data-column">
            <span data-ng-bind-template="{{row.msMin | assetValue}}{{row.msMax?' to ' + (row.msMax | assetValue ): '+'}}"></span>
          </td>
          <td class="prTaxBracketSettings-selection-table-data-column">
            <span data-ng-bind-template="{{row.hhMin | assetValue}}{{row.hhMax?' to ' + (row.hhMax | assetValue ): '+'}}"></span>
          </td>
        </tr>
      </tbody>
    </table>

Table 为table写的CSS

.prTaxBracketSettings-selection-table{
  border-collapse: separate;
  border-spacing: 10px 5px;
}

.prTaxBracketSettings-selection-table-head-column {
  height: 100%;
  border-bottom: 3px solid @pr-middle-grey;
  color: @pr-pdf__title-color;
  font-size: 14px;
  font-weight: 900;
  vertical-align: middle;
}

.prTaxBracketSettings-selection-table-row {
  cursor: pointer;
  &:hover {
    > .prTaxBracketSettings-selection-table-data-column {
      color: @pr-white;
      background-color: @pr-light-grey;

      position: relative;
      &:after {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 100%;
        right: -10px;
        background-color: @pr-light-grey;
        content: "";
      }
    }
  }
}

.prTaxBracketSettings-selection-table-row--selected {
  > .prTaxBracketSettings-selection-table-data-column {
    position: relative;
    &:after {
      position: absolute;
      top: 0;
      bottom: 0;
      left: 100%;
      right: -10px;
      background-color: @pr-light-blue;
      content: "";
    }
  }

  &:hover {
    > .prTaxBracketSettings-selection-table-data-column {
      background-color: @pr-light-blue;
      border-radius: 0;
      position: relative;
      &:after {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 100%;
        right: -10px;
        background-color: @pr-light-blue;
        content: "";
      }
    }
  }
}

.pr_table {
  width: 100%;
  text-align: center;
  border-collapse: separate;
  border-spacing: 15px 0;

  > thead {
    > tr {
      > th {
        position: relative;
        font-weight: bold;
        vertical-align: middle;
        
        color: @pr_table_head__color;
        border-bottom: 3px solid @pr-middle-grey;
      }
    }
  }

  > tbody {
    > tr {
      > td {
        position: relative;
        vertical-align: middle;
      }
    }
  }
}

.pr_table--bordered {
  .pr_table();
  > tbody {
    > tr {
      > td {
        border-bottom: 1px solid @pr-middle-grey;
      }
    }
  }
}


### border-spacingborder-collapse 的区别 `border-spacing` 和 `border-collapse` 是 CSS 中用于控制表格边框间距的两个属性,它们在功能和使用场景上有显著的区别。 #### `border-collapse` `border-collapse` 属性用于控制表格边框是否合并。它有两个主要值: - `collapse`:将相邻单元格的边框合并为一个单一的边框,这样可以消除单元格之间的间隙。 - `separate`:保持单元格边框独立,单元格之间会有间隙,这种情况下 `border-spacing` 属性才会生效。 示例代码: ```css table { border-collapse: collapse; } ``` 当使用 `border-collapse: collapse;` 时,表格中的单元格边框会合并,使得表格看起来更加紧凑[^1]。 #### `border-spacing` `border-spacing` 属性只有在 `border-collapse` 设置为 `separate` 时才有效。它定义了相邻单元格边框之间的距离。可以接受一个或两个长度值,如果提供两个值,则第一个值表示水平间距(左右),第二个值表示垂直间距(上下);如果只提供一个值,则同时用于水平和垂直间距。 示例代码: ```css table { border-collapse: separate; border-spacing: 10px 5px; } ``` 在上面的例子中,单元格之间的水平间距为 `10px`,垂直间距为 `5px`。如果只设置 `border-spacing: 10px;`,则水平和垂直间距都会是 `10px`。 ### 使用方法 - **border-collapse**:适用于希望表格边框紧密排列的情况,比如制作紧凑型表格- **border-spacing**:适用于需要精细控制表格单元格之间间距的情况,尤其是在 `border-collapse` 设置为 `separate` 时。 ### 注意事项 - `border-spacing` 不会影响表格的布局,它仅影响视觉上的间距。 - 在使用 `border-spacing` 时,必须确保 `border-collapse` 设置为 `separate`,否则 `border-spacing` 将不起作用。 ### 示例代码 下面是一个完整的 HTML 示例,展示了如何使用这两个属性: ```html <!DOCTYPE html> <html> <head> <style> table { border-collapse: separate; border-spacing: 10px 5px; border: 1px solid black; } td, th { border: 1px solid black; padding: 5px; } </style> </head> <body> <table> <tr> <th>Header 1</th> <th>Header 2</th> </tr> <tr> <td>Data 1</td> <td>Data 2</td> </tr> </table> </body> </html> ``` 在这个例子中,表格的单元格之间会有 `10px` 的水平间距和 `5px` 的垂直间距。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值