我有以下html结构:这是一个我无法编辑的固定结构
<div class="separator"></div>
<table class="myClass">
<thead>
<tr>
<th>title1</th>
<th>title2</th>
</tr>
</thead>
...
</table>
<div class="separator"></div>
第一个和最后一个div是css为:
的分隔符.separator {
height: 20px;
background-color: gray;
}
请注意,分隔符是复杂的小部件,而不仅仅是设计(我有意简化示例)
我想将表头放在第一个分隔符之前,但是表体必须保留在两个分隔符之间。
以下是测试的初始jsfiddle: http://jsfiddle.net/prhgW/1/
我试图将thead标记置于绝对位置并使用负顶部 值,但这样做时,thead的宽度小于 100%的表格和列标题都是错误的 列值。小提琴:http://jsfiddle.net/prhgW/2/
我也尝试将宽度设置为100%,但tr标签却没有 遵循以下规则:http://jsfiddle.net/prhgW/3/
答案 0 :(得分:2)
答案 1 :(得分:2)
我在纯CSS中一直在玩这个,这是我的forked fiddle。
基本上,我使用直接兄弟组合器.separator + .myClass
来定位分隔符后的表。然后我将整个桌子向上移动,使标题在分隔符上方排列。此移动使用相同的margin-bottom
进行补偿,因此表格下方的内容整齐地跟随表格。最后,我在thead
的标题单元格上添加了一些填充,以便将tbody
推送到分隔符下方。
可能的警告:
1em
作为默认值。答案 2 :(得分:0)
如果您想要的只是表标题下方和最后一行下方的灰线,您可以使用css border属性设置样式,如此处
我已经使用类删除了seperator类和div。
希望有所帮助。
答案 3 :(得分:0)
我使用了一点jquery在表格的标题下方添加一行。
<script>
$(document).ready(function(){
$('.myClass thead').append('<tr><td class="separator" colspan=2></td><tr>');
});
</script>