将边距添加到第th个元素

时间:2012-06-19 17:35:47

标签: html css

我有一个表格,我想为元素添加边距,这样我就可以有一个底部边框,不会填满整个表格列,元素不受影响。另一种看待这种情况的方法是使用边框折叠:分离和边框折叠:折叠不幸地不起作用。

我考虑过使用两个表作为标题,一个表示正文。还可以从table-cell以外的其他内容更改th元素的显示。两者都很讨厌,所以我正在寻找比存在更好的解决方案。

这是一个jsFiddle,如果你想快速发挥作用,就会得到一张带有一些css的表格。

以下是一些代码,主要来自于我尝试jsFiddle尝试实现我想做的事情。

HTML

<table>
  <thead>
    <tr>
        <th>Month</th>
        <th>Amount</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>January</td>
      <td>$100</td>
    </tr>
    <tr>
      <td>February</td>
      <td>$200</td>
    </tr>
  </tbody>
</table>​

CSS

table
{
    width:100%;
    padding:2px;
    border-collapse: collapse;
}
td
{
    padding:2px;
}
th
{
    border-bottom:2px solid gray;
    padding: 0 2px 5px;
    line-height: 15px;
    margin: 0 10px 0 0;
}

编辑:希望这能说明我正在努力实现的目标

---------------------------------------------
|Month     |Amount     |Month     |Amount      | <--TH element
|--------   ---------   --------   ---------   | <--bottom border doesn't fill cell
|----------------------------------------------|
|Jan       |$100       |Jan       |$100        |
|----------------------------------------------|
|Feb       |$200       |Feb       |$200        |
|----------------------------------------------|

2 个答案:

答案 0 :(得分:0)

您需要在我担心的td和/或th元素中添加边距,因为tr不会接受它。

答案 1 :(得分:0)

如果我理解你,这就像你想要的那样:

http://jsfiddle.net/VywK7/21/

th {
    background-color: yellow;
}
th {
    border-top: 4px solid gray;
    border-bottom: 4px solid gray;
}
th:first-child {
    border-left: 4px solid gray;
}
th + th + th + th, /* choose one of these selectors */
th:last-child {
    border-right: 4px solid gray;
}

Pseudoelement fun: http://jsfiddle.net/VywK7/23/

th:after {
    content: ' ';
    display:block;
    width: 50%;
    background: red;
    height: 4px;
    margin-bottom: 4px;
}