【发布时间】:2012-07-16 16:27:30
【问题描述】:
我有一个看起来像这样的表格(在 html 中):
<div id="product_grid_one">
<table>
<tr>
<td>
<div class="productimage"><img src="images/perfume.jpg" alt="Product Image" /></div>
<div class="productdescription"><p>Perfume spray bottle</p></div>
<div class="productprice"><p>$4.99</p></div>
</td>
<td>
<div class="productimage"><img src="images/perfume.jpg" alt="Product Image" /></div>
<div class="productdescription"><p>Perfume spray bottle</p></div>
<div class="productprice"><p>$4.99</p></div>
</td>
<td>
<div class="productimage"><img src="images/perfume.jpg" alt="Product Image" /></div>
<div class="productdescription"><p>Perfume spray bottle</p></div>
<div class="productprice"><p>$4.99</p></div>
</td>
<td>
<div class="productimage"><img src="images/perfume.jpg" alt="Product Image" /></div>
<div class="productdescription"><p>Perfume spray bottle</p></div>
<div class="productprice"><p>$4.99</p></div>
</td>
</tr>
</table>
</div>
这是它的 CSS:
td { width: px; padding: 14px; border: 1px solid #c0c0c0; margin: 14px; }
基本上一排有四个单元格。每个单元格都有一个垂直堆叠的图像, 产品的文字描述和产品价格。现在,围绕这个三件套 我希望我的 td 元素(我认为它可以被视为一个块)有一个填充 14px,这个我可以设置没问题,这样在距离14px的地方就有一个1px的边框 一堆图像、文本和价格。到这里没问题。
问题是上面没有设置边距!!@
我可以设置边距:200px;仍然没有区别,边距是 大约 1 或 2 个像素,似乎无法改变这一点。我有 在 Firefox 13.0.1 上试过这个。
那么,如何设置边距?我希望表格中的每个 td 之间有 14 px。
这可以通过 CSS 实现吗?
建议使用表格的 cellspacing 属性。所以,我可以 使用以下等效 CSS:
table { border-collapse: separate; border-spacing: 14px; }
但这对我没有好处,因为我希望仅在 桌子。我不希望表格的任何一侧(左侧或右侧)有任何间距 整个。有什么解决办法吗?
好吧,我终于找到了解决方案。我设法解决了这个问题 具有负边距,以便表格添加的边框间距 表格(除了在各种表格数据和表格标题之间) 当它通过使用向左移开时不会变得可见 左边距为负值。
table { border-collapse: separate; border-spacing: 13px; margin-left: -13px; }
【问题讨论】:
-
边距仅适用于表格,不适用于其单个单元格。单元格的全部目的是保持它们紧凑和可调整大小。如果这是你想要达到的,你应该使用分隔线。
-
边距不能应用于表格单元格。你应该使用cellspacing;这种情况就是它的设计目的。
标签: html css xhtml margin css-tables