表中两行之间的空格?
这是可能的通过CSS?
我尝试着
tr.classname { border-spacing: 5em; }
无济于事。 也许我做错了什么?
你需要在你的td
元素上使用填充。 像这样的事情应该做的伎俩。 当然,您可以使用顶部填充而不是底部填充获得相同的结果。
在下面的CSS代码中,大于号表示填充仅适用于td
元素,这些元素是直接子元素到tr
元素的类spaceUnder
。 这将使得使用嵌套表成为可能。 (在示例代码中的单元格C和D.)我不太确定直接子select器(想想IE 6)的浏览器支持,但它不应该破坏任何现代浏览器中的代码。
/* Apply padding to td elements that are direct children of the tr elements with class spaceUnder. */ tr.spaceUnder>td { padding-bottom: 1em; }
<table> <tbody> <tr> <td>A</td> <td>B</td> </tr> <tr class="spaceUnder"> <td>C</td> <td>D</td> </tr> <tr> <td>E</td> <td>F</td> </tr> </tbody> </table>
在父表中,尝试设置
border-collapse:separate; border-spacing:5em;
再加上一个边界声明,看看这是否达到你想要的效果。 但是,请注意,IE不支持“分隔边界”模式。
你有任何数据与ID专辑表…我已经省略了trs和tds
<table id="albums" cellspacing="0"> </table>
在CSS中:
table#albums { border-collapse:separate; border-spacing:0 5px; }
因为我在桌子后面有一个背景图像,所以用白色填充来伪造它将不起作用。 我select在每行内容之间放置一个空行:
<tr class="spacer"><td></td></tr>
然后使用CSS来给隔片行一定的高度和透明的背景。
您可以尝试添加分隔符行:
HTML:
<tr class="separator" />
CSS:
table tr.separator { height: 10px; }
来自Mozilla开发者networking :
border-spacing CSS属性指定相邻单元格边框之间的距离(仅限于分隔的边框模型)。 这相当于表示HTML中的cellspacing属性, 但可以使用可选的第二个值来设置不同的水平和垂直间距。
最后一部分经常受到监督。 例:
.your-table { border-collapse: separate; /* allow spacing between cell borders */ border-spacing: 0 5px; /* NOTE: syntax is <horizontal value> <vertical value> */
UPDATE
我现在明白,OP希望特定的,单独的行增加间距。 我添加了一个tbody
元素的设置,可以在不破坏语义的情况下完成。 但是,我不确定是否在所有浏览器上都支持。 我在Chrome中创build。
下面的例子是为了展示你如何使它看起来像表中存在的单行,充分吹捧的css甜头。 还给了tbody
设置第一行更多的空间。 随意使用!
支持通知:IE8 +,Chrome,Firefox,Safari,Opera 4+
.spacing-table { font-family: 'Helvetica', 'Arial', sans-serif; font-size: 15px; border-collapse: separate; table-layout: fixed; width: 80%; border-spacing: 0 5px; /* this is the ultimate fix */ } .spacing-table th { text-align: left; padding: 5px 15px; } .spacing-table td { border-width: 3px 0; width: 50%; border-color: darkred; border-style: solid; background-color: red; color: white; padding: 5px 15px; } .spacing-table td:first-child { border-left-width: 3px; border-radius: 5px 0 0 5px; } .spacing-table td:last-child { border-right-width: 3px; border-radius: 0 5px 5px 0; } .spacing-table thead { display: table; table-layout: fixed; width: 100%; } .spacing-table tbody { display: table; table-layout: fixed; width: 100%; border-spacing: 0 10px; }
<table class="spacing-table"> <thead> <tr> <th>Lead singer</th> <th>Band</th> </tr> </thead> <tbody> <tr> <td>Bono</td> <td>U2</td> </tr> </tbody> <tbody> <tr> <td>Chris Martin</td> <td>Coldplay</td> </tr> <tr> <td>Mick Jagger</td> <td>Rolling Stones</td> </tr> <tr> <td>John Lennon</td> <td>The Beatles</td> </tr> </tbody> </table>
您不能更改表格单元格的边距。 但是你可以改变填充。 改变TD的填充,这将使单元格更大,并使用增加的填充将文本从侧面推开。 如果你有边界线,但是,它仍然不会是你想要的。
好的,你可以做
tr.classname td {background-color:red; border-bottom: 5em solid white}
确保背景颜色设置在td而不是行上。 这应该适用于大多数浏览器…(Chrome,即经过testing)
你需要设置border-collapse: separate;
在桌子上; 大多数浏览器默认样式表开始于border-collapse: collapse;
,其中沟渠间距。
此外,边界间距:在TD
,而不是在TR
。
尝试:
<html><head><style type="text/css"> #ex { border-collapse: separate; } #ex td { border-spacing: 1em; } </style></head><body> <table id="ex"><tr><td>A</td><td>B</td></tr><tr><td>C</td><td>D</td></tr></table> </body>
您可以在表格中使用行高 :
<table style="width: 400px; line-height:50px;">
tr { display: block; margin-bottom: 5px; }
答案太晚了:)
如果将float应用于tr
元素,则可以在具有margin
属性的两行之间进行margin
。
table tr{ float: left width: 100%; } tr.classname { margin-bottom:5px; }
为了创build行之间的间距错觉,应用背景颜色行,然后创build一个白色的厚边框,以便创build一个“空间”:)
tr { background-color: #FFD700; border: 10px solid white; }
为表格分配空间的正确方法是使用cellpadding和cellspacing
<table cellpadding="4">
在遇到类似的问题时,我偶然发现了这个问题。 我发现Varun Natraaj的答案是相当有帮助的,但我会使用一个透明的边框。
td { border: 1em solid transparent; }
透明的边框仍然有宽度。
适用于2015年最新的浏览器。简单的解决scheme。 它不适用于透明,但与Thoronwen的回答不同,我无法透明地渲染任何尺寸。
tr { border-bottom:5em solid white; }
简单的把div放在td中,并设置div的下列样式:
margin-bottom: 20px; height: 40px; float: left; width: 100%;
我意识到这是一个老的线程的答案,可能不是所要求的解决scheme,但虽然所有build议的解决scheme没有做我所需要的,这个解决scheme为我工作。
我有2个表格单元格,一个背景颜色,另一个边框颜色。 上面的解决scheme删除了边界,所以右侧的单元格将显示为在半空中浮动。 这个技巧的解决scheme是用div和相应的类来replacetable
, tr
和td
:table是div id="table_replacer"
,tr是div class="tr_replacer"
,td是div class="td_replacer"
(显然,更改closures标签为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;}
希望这有助于某人。
您可以使用<div />元素填充<td />元素,并将任何边距应用于您喜欢的div。 对于行之间的视觉空间,可以在<tr />元素上使用重复的背景图像。 (这是我今天刚刚使用的解决scheme,似乎可以在IE6和FireFox 3上运行,但我没有进一步testing。)
另外,如果你不愿修改你的服务器代码把<div>放在<td /> s中,你可以使用jQuery(或类似的东西)dynamic地将<td / >,使您能够根据需要应用CSS。
或者只是在要添加间距的行之间添加一个空白的边缘高度
这里工作顺利:
#myOwnTable td { padding: 6px 0 6px 0;}
我想你可以通过指定哪个td来制定更细致的布局。
这样做如上所示…
table tr{ float: left width: 100%; } tr.classname { margin-bottom:5px; }
删除垂直列alignment,所以要小心你如何使用它
你有没有尝试过:
tr.classname { margin-bottom:5em; }
或者,每个td也可以调整:
td.classname { margin-bottom:5em; }
要么
td.classname { padding-bottom:5em; }