【发布时间】:2013-06-18 05:05:44
【问题描述】:
我正在尝试使用 jQuery 来平衡列的高度。我的解决方案适用于页面加载,但不适用于调整窗口大小。代码如下:
function equalizeCols(){
var tallest = 0;
var program = $("#programs li");
var blueSpace = $("#programs li .programInfo");
program.each(function(){
var thisHeight = $(this).height();
var imgHeight = $("#programs li img").height();
var leftOver = thisHeight - imgHeight;
if(leftOver > tallest){
tallest = leftOver;
}
});
blueSpace.height(tallest);
}
$(window).load(equalizeCols);
很简单,这会遍历所有列表项,获取最高高度,然后将所有列表项设置为该高度。每个列表项都有一个百分比宽度,因此每个列表项的高度将根据窗口的大小而变化。也就是说,我需要这个来调整窗口大小。如果我只是做$(window).resize(equalizeCols);,列表项将继续增长,因为高度已经从加载设置。
知道如何调整此代码以调整窗口大小吗?
【问题讨论】:
-
您确定 javascript 是解决问题的正确方法吗?不能用 CSS 完成吗?无论如何,如果基于百分比,您的 JS 解决方案可能会变得脆弱。
-
我想不出一个好的 CSS 解决方案。有什么想法(不使用 flexbox)?
-
@jchase 我在 bit.ly/12Rghfn 有一个基于 CSS 的解决方案。虽然问题是 Bootstrap 特定的,但解决方案是通用的。
-
当然,它回到负边距/填充解决方案。无法让它与我的代码一起使用,我将把小提琴放在一起
-
如果你有一行列,那就可以了。我可能有 50 行,我希望高度相等
标签: jquery responsive-design fluid-layout