html - 表格的列和边框之间的间距相等

标签 html css css-tables spacing cellspacing

我有一个包含三列的外表。每个单元格包含一个内部表。外表和内表都有边框。

我希望外部表格的左边框与第一个内部表格之间、每个内部表格与下一个内部表格之间以及最后一个内部表格与外部表格的右边框之间具有相等的水平空间。

有什么干净的方法可以做到这一点?我一直在尝试为每个外表行中的第一个、第二个和第三个单元格定义 CSS 规则,如下所示:

  table.outer tr td:nth-of-type(1) {
     text-align:center; vertical-align:top;
     padding-left:3mm; padding-right:1.5mm;
  }
  table.outer tr td:nth-of-type(2) {
     text-align:center; vertical-align:top;
     padding-left:1.5mm; padding-right:1.5mm;
  }
  table.outer tr td:nth-of-type(3) {
     text-align:center; vertical-align:top;
     padding-left:1.5mm; padding-right:3mm;
  }

这种方法会造成噩梦。首先,IE 8 不支持第 n 个类型选择器。其次,在支持它的浏览器中,内部表格的第一个、第二个和第三个单元格继承了外部表格的填充属性,当我尝试覆盖它们时,内部表格的水平间距会变大完全不正常。我不知道出了什么问题,更不知道为什么。最好找到另一种方法,而不是继续尝试使这种方法发挥作用!

最佳答案

添加 cellpadding="0"以及您希望外部表格单元格间距的任何值,并使内部表格 width="100%"。

HTML:

<table class="outer" cellspacing="10" cellpadding="0">
    <tr><td><table class="inner"><tr><td>bbb</td></tr></table></td>
        <td><table class="inner"><tr><td>bbb</td></tr></table></td>
        <td><table class="inner"><tr><td>bbb</td></tr></table></td>
    </tr>
    <tr><td><table class="inner"><tr><td>a</td></tr></table></td>
        <td><table class="inner"><tr><td>a</td></tr></table></td>
        <td><table class="inner"><tr><td>a</td></tr></table></td>
    </tr>
</table> 

CSS:

.outer
{ 
    border: 1px solid black;
}
.inner
{ 
    border: 1px solid black;
    width: 100%;
}

工作演示:http://jsfiddle.net/er144/qEcgw/

关于html - 表格的列和边框之间的间距相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20963256/

相关文章:

javascript - 如何使用 jQuery/JavaScript 检测多组单选按钮更改并更改单独的表单输入?

javascript - 如何从输入中获取数字并按从大到小的顺序排列

html - 滚动背景直到显示整个背景图像

html - 分页后重复表格标题

CSS Border-collapse 结合虚线边框

javascript - jQuery 图片点击事件不起作用

html - 展开子菜单时,菜单项会更改其在 html/css 菜单中的位置

html - 将一张图片放在另一张图片上,但在调整浏览器宽度时两者一起移动

css - 单击播放时如何使网站上的嵌入式 youtube 视频帧膨胀?

javascript - 动态创建的表格单元格在 Firefox 32.0 中不显示