我有两个包含各种元素(span,input,select,...)的html表格,我想强制这些表格的行具有相同的高度。不幸的是,在tr
或td
上设置属性“高度”不起作用(如果该行包含至少一个超过给定高度的元素,则该行更高)。使用Javascript设置高度很慢
我还没有找到一种方法,我可以用css强制行高,所以我写了一个循环遍历所有行的Javascript函数,检查左表的高度与相应行的高度在右表中,如果它们不同,我将高度(改变样式)设置为最大值。
它的工作原理......但如果表格有很多行,则速度非常慢!我认为这是由于这种风格的每次改变都会导致回流。
任何提示?请注意,我无法合并这两个表。
这里我的代码剪断,但也许我总共需要不同的方法......
var rightTableRows = mainTable.children("tbody").children("tr:parent");
var leftTableRows = colHeader.children("tbody").children("tr:parent");
for (chr=0;chr < leftTableRows .length;chr++) {
var rowLeft = leftTableRows [chr];
var heightleft = rowLeft.offsetHeight;
var rowRight = rightTableRows[chr];
var heightright = rowRight.offsetHeight;
if(heightleft != heightright){
console.log("left: "+heightleft +" - right: "+heightright);
if(heightleft>heightright){
rowRight.setAttribute("style","height:"+heightleft+"px");
}else{
rowLeft.setAttribute("style","height:"+heightright+"px");
}
}
}
酷,thx。我马上尝试。在我看来,如果应该提高性能:我只有在不同时才设定高度。 – Zardo
性能更好! :-)它不工作在IE浏览器,我检查它,我会回来这里... – Zardo
很酷,让我知道如果有任何错误报告在IE浏览器(和哪个版本),我们可以尝试通过他们 – skyline3000