我有2个表格单元格,一个有背景颜色,另一个有边框颜色 . 上述解决方案去除了边界,因此右侧的单元格似乎漂浮在半空中 . 做诀窍的解决方案是用div和相应的类替换 table , tr 和 td :table将是 div id="table_replacer" ,tr将是 div class="tr_replacer" 而td将是 div class="td_replacer" (显然将结束标记更改为div)
为了解决我的问题,css是:
#table_replacer{display:table;}
.tr_replacer {border: 1px solid #123456;margin-bottom: 5px;}/*DO NOT USE display:table-row! It will destroy the border and the margin*/
.td_replacer{display:table-cell;}
24 回答
在父表中,尝试设置
加上边界声明,看看这是否达到了你想要的效果 . 但请注意,IE不支持“分离边界”模型 .
您可以尝试添加分隔符行:
HTML:
CSS:
因为我在 table 后面有一个背景图像,用白色填充伪装它是行不通的 . 我选择在每行内容之间放一个空行:
然后使用css为间隔行提供一定的高度和透明背景 .
你有任何数据的id专辑表...我省略了trs和tds
在CSS中:
好的,你可以做到
确保在td而不是行上设置背景颜色 . 这适用于大多数浏览器...(Chrome,即&ff测试)
为表提供间距的正确方法是使用cellpadding和cellspacing,例如
你需要在 table 上设置
border-collapse: separate;
;大多数浏览器默认样式表从border-collapse: collapse;
开始,它会划分边框间距 .另外,border-spacing:在
TD
上,而不是TR
.尝试:
要创建行间距的错觉,请将背景颜色应用于行,然后创建一个白色的粗边框,以便创建“空格”:)
您可以使用<div />元素填充<td />元素,并将任何边距应用于您喜欢的div . 对于行之间的可视空间,可以在<tr />元素上使用重复的背景图像 . (这是我今天刚刚使用的解决方案,它似乎在IE6和FireFox 3中都有效,但我没有进一步测试它 . )
另外,如果你反对修改服务器代码以将<div />放在<td />中,你可以使用jQuery(或类似的东西)动态地将<td />内容包装在<div />中>,使您可以根据需要应用CSS .
我意识到这是一个旧线程的答案,可能不是所要求的解决方案,但是虽然所有建议的解决方案都没有按照我的要求行事,但这个解决方案对我有用 .
我有2个表格单元格,一个有背景颜色,另一个有边框颜色 . 上述解决方案去除了边界,因此右侧的单元格似乎漂浮在半空中 . 做诀窍的解决方案是用div和相应的类替换
table
,tr
和td
:table将是div id="table_replacer"
,tr将是div class="tr_replacer"
而td将是div class="td_replacer"
(显然将结束标记更改为div)为了解决我的问题,css是:
希望这有助于某人 .
看一下border-collapse: separate属性(默认)和border-spacing属性 .
首先,您必须使用 border-collapse seperate ,然后您可以使用 border-spacing 定义 space between columns and rows .
这两个CSS属性实际上在每个浏览器上都得到了很好的支持,see here .
只需将div放在td中并设置以下div格式:
你有没有尝试过:
或者,每个td也可以调整:
要么
您无法更改表格单元格的边距 . 但是你可以改变填充 . 更改TD的填充,这将使单元格更大,并使用增加的填充将文本推离侧面 . 但是,如果你有边框线,它仍然不是你想要的 .
这很顺利:
我想你可以通过指定哪个td(如果需要)来制定更精细的布局 .
我在遇到类似问题的同时偶然发现了这一点 . 我发现Varun Natraaj的答案非常有帮助,但我会使用透明边框代替 .
透明边框仍然有宽度 .
适用于2015年最新的浏览器 . 简单的解决方案 . 它不适用于透明,但与Thoronwen的答案不同,我不能透明地渲染任何大小 .
来不及答案:)
如果将float应用于
tr
元素,则可以使用margin
属性在两行之间留出空格 .您需要在
td
元素上使用填充 . 这样的事情应该可以解决问题 . 当然,您可以使用顶部填充而不是底部填充来获得相同的结果 .在下面的CSS代码中,大于号表示填充仅应用于
td
元素,这些元素是具有类spaceUnder
的tr
元素的直接子元素 . 这样就可以使用嵌套表 . (示例代码中的单元格C和D . )我在任何现代浏览器中都打破了代码 .这应该有点像这样:
或者只是在要添加的行之间添加一个空白,边距的高度间距
这样做如上所示......
删除垂直列对齐因此请小心使用它
From Mozilla Developer Network:
最后一部分经常受到监督 . 例:
UPDATE
我现在明白OP需要特定的,单独的行来增加间距 . 我添加了一个带有
tbody
元素的设置,可以在不破坏语义的情况下完成 . 但是,我不确定它是否在所有浏览器上都受支持 . 我是在Chrome中制作的 .下面的例子是为了展示你如何使它看起来像表中存在的单独行,完整的css甜蜜 . 还使用
tbody
设置为第一行提供了更多间距 . 随意使用!支持通知:IE8,Chrome,Firefox,Safari,Opera 4
您可以在表格中使用 line-height :