64

假设我想创建一个单行表,每列之间有 50 像素,但顶部和底部有 10 像素填充。

我将如何在 HTML/CSS 中执行此操作?

4

7 回答 7

111

不需要假<td>的。border-spacing取而代之。像这样应用它:

HTML:

<table>
  <tr>
    <td>First Column</td>
    <td>Second Column</td>
    <td>Third Column</td>
  </tr>
</table>

CSS:

table {
  border-collapse: separate;
  border-spacing: 50px 0;
}

td {
  padding: 10px 0;
}

看到它在行动

于 2014-08-14T08:44:48.203 回答
12

<td>s 的宽度设置为50px,然后添加您的<td>+ 另一个假<td>

小提琴。

table tr td:empty {
  width: 50px;
}
  
table tr td {
  padding-top: 10px;
  padding-bottom: 10px;
}
<table>
  <tr>
    <td>First Column</td>
    <td></td>
    <td>Second Column</td>
    <td></td>
    <td>Third Column</td>
  </tr>
</table>

代码解释:

第一条 CSS 规则检查空 td 并给它们 50px 的宽度,然后第二条规则为所有 td 提供顶部和底部的填充。

于 2013-07-04T11:53:48.417 回答
10

如果我理解正确,你想要这个fiddle

table {
  background: gray;
}
td {    
  display: block;
  float: left;
  padding: 10px 0;
  margin-right:50px;
  background: white;
}
td:last-child {
  margin-right: 0;
}
<table>
  <tr>
    <td>Hello HTML!</td>
    <td>Hello CSS!</td>
    <td>Hello JS!</td>
  </tr>
</table>

于 2013-07-04T13:21:08.563 回答
8

你可以只使用填充。像这样:

http://jsfiddle.net/davidja/KG8Kv/

HTML

   <table>
        <tr>
            <td>item1</td>
            <td>item2</td>
            <td>item2</td>
        </tr>
    </table>

CSS

 td {padding:10px 25px 10px 25px;}

或者

 tr td:first-child {padding-left:0px;}
 td {padding:10px 0px 10px 50px;}
于 2013-07-04T11:56:37.670 回答
7

比选定答案更好的解决方案是使用边框大小而不是边框​​间距。使用边框间距的主要问题是,即使是第一列也会在前面有间距。

例如,

table {
  border-collapse: separate;
  border-spacing: 80px 0;
}

td {
  padding: 10px 0;
}
<table>
  <tr>
    <td>First Column</td>
    <td>Second Column</td>
    <td>Third Column</td>
  </tr>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
</table>

为了避免这种使用:border-left: 100px solid #FFF;并设置border:0px为第一列。

例如,

td,th{
  border-left: 100px solid #FFF;
}

 tr>td:first-child {
   border:0px;
 }
<table id="t">
  <tr>
    <td>Column1</td>
    <td>Column2</td>
    <td>Column3</td>
  </tr>
  <tr>
    <td>1000</td>
    <td>2000</td>
    <td>3000</td>
  </tr>
</table>

于 2016-06-01T14:53:00.803 回答
4

尝试

padding : 10px 10px 10px 10px;
于 2013-07-04T11:54:30.470 回答
-2

如果您需要给出两行之间的距离,请使用此标签

margin-top: 10px !important;
于 2015-12-20T04:44:54.147 回答