里面只有CSS表格边框间距

我已经努力工作了好几个月,谷歌没有帮助我。 我试图在表中标记<td><th>之间的间隔,但是当我这样做的时候,它会在外部进行间隔。 因此,表格不与其他任何内容。 所以它看起来像表格有一些填充。

我似乎无法find解决scheme。

这是一个问题的例子

有同样的问题,边界间距属性也增加了桌子周围的空间,据我所知,没有任何限制,只有“内部”,所以我用透明的边框,而不是:

 table td { border-left: 1em solid transparent; border-top: 1em solid transparent; } 

除了表格顶部和左边有“不需要的”间距之外,这样设置“边界间距”是正常的。

 table td:first-child { border-left: 0; } 

select第一列。

 table tr:first-child td { border-top: 0; } 

select第一行的td元素(假设表格的顶部以tr元素开头,相应地更改为th)

我find了一个方法来做到这一点的负边缘,并提高了史蒂芬的答案,即使它没有足够的内容,它可以让你占用100%的表。 解决方法是使表格宽度为100%,并在包含元素上使用负边距:

 #container { margin: 0 -10px; } table { border-collapse: separate; border-spacing: 10px; } td, th { background-color: #ccf; padding: 5px; } 

把它看作是一个jsFiddle

类似于史蒂文·沃钦所说的,负利润率可能是你最好的select。

或者,您可以使用calc()来解决问题。

CSS:

 /* border-collapse and border-spacing are css equivalents to <table cellspacing="5"> */ .boxmp { width:100%; border-collapse:separate; border-spacing:5px 0; } /* border-spacing includes the left of the first cell and the right of the last cell negative margin the left/right and add those negative margins to the width ios6 requires -webkit- android browser doesn't support calc() 100.57% is the widest that I could get without a horizontal scrollbar at 1920px wide */ .boxdual { margin:0 -5px; width:100.57%; width:-webkit-calc(100% + 10px); width:calc(100% + 10px); } 

只需添加任何边距,或者宽度太窄(100%不够宽)。

我用透明的边框优化了解决scheme,所以没有更多的斜切内边框。

1)让表格填充水平并折叠边框:

 table { width: 100%; border-collapse: collapse; } 

2)将表格单元格的所有边框设置为宽度0,并防止在边框下面绘制背景。

 td { border: 0px solid transparent; background-clip: padding-box; } 

3)用透明边框设置内部空间,但不要设置第一行和第一列。

 tr > td + td { border-left-width: 10px; } tr + tr > td { border-top-width: 10px; } 

这里是一个jsbin

使用负边距和正面填充的容器。

 #container { box-sizing: border-box; /* avoids exceeding 100% width */ margin: 0 auto; max-width: 1024px; padding: 0 10px; /* fits table overflow */ width: 100%; } table { border-collapse: separate; border-spacing: 10px; margin: 0 -10px; /* ejects outer border-spacing */ min-width: 100%; /* in case content is too short */ } td { width: 25%; /* keeps it even */ } 

只要确保你有足够的内容来将表格拉伸到100%的宽度,否则将会是20px太窄。

更多信息: svachon.com/blog/inside-only-css-table-border-spacing/

这是一个简单而干净的解决scheme。

HTML

 <div class="column-container"> <div class="column-children-wrapper"> <div class="column">One</div> <div class="column">Two</div> <div class="column">Three</div> <div class="column">Four</div> </div> </div> 

CSS

 .column-container { display: table; overflow: hidden; } .column-children-wrapper { border-spacing: 10px 0; margin-left: -10px; margin-right: -10px; background-color: blue; } .column { display: table-cell; background-color: red; } 

https://jsfiddle.net/twttao/986t968c/