html - 为什么 border-spacing 不在我的 TABLE 元素周围添加填充?

标签 html css html-table border

我想在 TABLE 元素的上方和下方添加一些填充。我读过 border-spacing 可以用于此。所以我有我的 table

<table id="ranks">
    <tbody><tr class="ranksHeaderRow">
        <th></th>
        <th>Name</th>
        <th>Score</th>
        <th>Votes Cast</th>
    </tr>
    <tr class="ranksDataRow even" data-id="25">
        <td>1</td> 
        <td><a class="rankPersonLink" href="/votes/25">NameN</a></td>
        <td>12.0</td>
        <td>1</td>
    </tr>
    ...
</table>

然后就有了这个风格

#ranks {
        margin: 0 auto;
        width: 60%;
        border-collapse: collapse;
        border-spacing: 20px 20px 20px 20px;
}

但是 TABLE 周围没有填充 -- https://jsfiddle.net/00tjhxaw/ .如何让我的填充出现在我的 TABLE 元素周围?我添加了周围的 DIV,以便可以显示背景色,但我不想尽可能更改周围的 DIV。

PS - 让这变得更加复杂,我喜欢单元格之间没有间距的事实,我想保留它。

最佳答案

border-collapse 将阻止 padding 应用于您的表格元素。我认为您可以使用 border-spacing: 0; 并删除 border-collapse

我假设您将表格包装在具有背景色的 DIV 中,因为您想要在整个页面上创建一条颜色带,而不是简单地向表格单独添加背景色。

在表格前后添加空间的方法有几种选择。

1。在表格上使用 padding

div {
  background-color: orange;
}

table {
  margin: 0 auto;
  padding: 3rem 0;
  border-spacing: 0;
}
<div>
  <table>
    <tr>
      <th>Alpha</th>
      <th>Bravo</th>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
    </tr>
    <tr>
      <td>3</td>
      <td>4</td>
    </tr>
  </table>
</div>

2。在表格上使用 margin

请记住,您必须使用 clearfix 来确保边距不会超出包装 DIV。

div {
  background-color: orange;
  overflow: hidden; /* my clearfix */
}

table {
  margin: 3rem auto;
  border-spacing: 0;
}
<div>
  <table>
    <tr>
      <th>Alpha</th>
      <th>Bravo</th>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
    </tr>
    <tr>
      <td>3</td>
      <td>4</td>
    </tr>
  </table>
</div>

3。在包装器 DIV 上使用 padding

div {
  padding: 3rem 0;
  background-color: orange;
}

table {
  margin: 0 auto;
  border-spacing: 0;
}
<div>
  <table>
    <tr>
      <th>Alpha</th>
      <th>Bravo</th>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
    </tr>
    <tr>
      <td>3</td>
      <td>4</td>
    </tr>
  </table>
</div>

关于html - 为什么 border-spacing 不在我的 TABLE 元素周围添加填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48670311/

相关文章:

css - 如何使下拉菜单响应智能手机屏幕尺寸?

html - 列响应行为和故障。在移动设备上显示 2x3 与 1x6 列(HTML 访问受限)

css - 需要帮助设计 react-native-elements 输入组件

html - 为什么黑莓手机的 td 中没有正确的填充

javascript - 隐藏特定表的第 n 个子级

php & mysql 表单数据

java - 用于 html5 音频和视频的volumeslider

angularjs - 带有 Hashbang Route 的 Html5 模式,用于页面上的直接 url

javascript - 重用 Javascript 函数的最佳实践

javascript - HTML 表格,点击行号