我有两个表,我想将一个表堆叠在另一个表的顶部,以便在视觉上看起来它们是一个实体-两者的宽度应该相等。
为了便于论证,假设顶部表有8列,底部表有3列。如何使底部表格与顶部表格占据相同的视觉宽度?
我想要这样做的原因是,顶部表格加载了单选按钮和复选框项目,而下部表格将始终只有一行,由取消按钮、数量字段和确定按钮组成。我有几十个不同宽度的顶部表格,但我只想对其中一个底部表格进行编码,并用Javascript将其中一个顶部表格拖入,然后将下部表格放在其下方,使其与顶部表格占据相同的宽度。
我一直在使用html和/或CSS来获得相同的宽度。我并不坚持认为较低的东西是一张桌子。如果有一个解决方案可以让我很好地将这3个字段集中在顶部表格的宽度内,那就太好了。
我想你正在寻找这样的东西:
工作示例
CSS
table {
border:1px solid blue;
}
.table1 td {
border:1px solid red;
height:50px;
width:50px;
}
.table2 td {
height:50px;
border: 1px solid green;
}
HTML
<table class="table1">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</table>
<table class="table2">
<td></td>
<td></td>
<td></td>
</table>
jQuery
var width = function () {
$('.table2').width($('.table1').width());
};
$(document).ready(width);
$(window).resize(width);
如果您喜欢纯JavaScript:
工作示例2
function tablewidth() {
var table1 = document.getElementById('table1'),
style = window.getComputedStyle(table1),
width = style.getPropertyValue('width'),
border = style.getPropertyValue('border-left-width'),
w = parseInt(width, 10) + parseInt(border, 10) * 2 + 'px';
document.getElementById('table2').style.width = w;
}
window.onresize = tablewidth;
window.onload = tablewidth;
如何使底部表格与顶部表格占据相同的视觉宽度?
给它们定义相同的宽度有什么错?你不会做table { width: 500px; }
吗?
您可以尝试将它们包装成这样的div:
<div id="table_wrapper">
<table>...
<table>....
</div>
通过CSS为div指定一个宽度,例如80%,并将表的宽度设置为100%。这应该将它们拉伸到为外部div定义的最大宽度。