如何增加HTML中表格列之间的距离?

idu*_*ude 46 html css html-table padding

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

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

dan*_*els 79

没有任何需要假<td>的.利用border-spacing代替.像这样应用:

HTML:

<table>
  <tr>
    <td>First Column</td>
    <td>Second Column</td>
    <td>Third Column</td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

CSS:

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

td {
  padding: 10px 0;
}
Run Code Online (Sandbox Code Playgroud)

看到它在行动.

  • 不利之处在于,如果要在悬停时对行进行条带化或为行上色:浏览器不会将背景色扩展到整个边框空间。 (3认同)
  • 这不是最佳答案:它在第一列的左侧留有一个空格:[请参阅此](http://stackoverflow.com/a/37572153/2142994) (2认同)

Moh*_*qui 12

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

小提琴.

HTML:

<table>
    <tr>
        <td>First Column</td>
        <td></td>
        <td>Second Column</td>
        <td></td>
        <td>Third Column</td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

CSS

table tr td:empty {
    width: 50px;
}

table tr td {
    padding-top: 10px;
    padding-bottom: 10px;
}
Run Code Online (Sandbox Code Playgroud)

代码说明:

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


Igo*_*gor 9

如果我理解正确,你想要这个小提琴.

HTML:

<table>
<tr>
    <td>Hello HTML!</td>
    <td>Hello CSS!</td>
    <td>Hello JS!</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

CSS:

table {
    background: gray;
}
td {    
    display: block;
    float: left;
    padding: 10px 0;
    margin-right:50px;
    background: white;
}
td:last-child {
    margin-right: 0;
}
Run Code Online (Sandbox Code Playgroud)


Dav*_*len 7

你可以使用填充.像这样:

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

HTML

   <table>
        <tr>
            <td>item1</td>
            <td>item2</td>
            <td>item2</td>
        </tr>
    </table>
Run Code Online (Sandbox Code Playgroud)

CSS

 td {padding:10px 25px 10px 25px;}
Run Code Online (Sandbox Code Playgroud)

要么

 tr td:first-child {padding-left:0px;}
 td {padding:10px 0px 10px 50px;}
Run Code Online (Sandbox Code Playgroud)


Che*_*wai 5

尝试

padding : 10px 10px 10px 10px;
Run Code Online (Sandbox Code Playgroud)


Ani*_*non 5

比选择的答案更好的解决方案是使用border-size而不是border-spacing.使用边框间距的主要问题是即使第一列在前面也会有间距.

例如,

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

td {
  padding: 10px 0;
}
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

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

例如,

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

 tr>td:first-child {
   border:0px;
 }
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

  • 这样就形成了一个大的白色块。使用“padding-left”或“margin-left”代替不是更明智吗? (2认同)