function equalHeight,设置最小高度适用?

时间:2011-09-02 11:02:26

标签: javascript jquery height css-position calculated-columns

我已经尝试了一切,但没有javascript我无法实现我的设计师给我的糟糕的布局

  
    

正如你所看到的那样,我必须使用z-index绝对定位div #cbrr-box ,以便正确地位于 #contenuto 之后(其中包含页面内容!!)     现在要解决 #cbrr-box 的可扩展性问题,如果#contenuto的内容长于侧栏 #barra-laterale ,我可以使用下面的代码,但是在相反的情况下不正常,请参阅页面:http://demo.liquidfactory.it/secondopolo/per-informarti

  

那么如何告诉javascript仅在div侧边栏的最小高度上应用该计算 #barra-laterale ??

需要帮助..请!

function equalHeight(group) {
           tallest = 0;
           group.each(function() {
              thisHeight = $(this).height();
              if(thisHeight > tallest) {
                 tallest = thisHeight = $("#contenuto").height() - 380;
              }
           });
           group.height(tallest);
        }
        $(document).ready(function() {
           equalHeight($(".column"));
        });

1 个答案:

答案 0 :(得分:0)

问题可能来自这条线:

tallest = thisHeight = $("#contenuto").height() - 380;

目前,它将变量tallestthisHeight都设置为内容区域的高度减去380像素。将其更改为:

tallest = thisHeight;

它会将所有列的大小调整到最高的列的高度。

修改:看起来您的右侧列实际上包含多个列.barra-laterale的列,在这种情况下您可能想要完全采取另一种方法:

// calculate the total height of the content are and sidebar
var contentHeight = $("#contenuto").height();
var sidebarHeight = 0;
$(".barra-laterale").each(function() { sidebarHeight += $(this).height(); })

if (sidebarHeight > contentHeight) {
    $("#contenuto").height(sidebarHeight);
} else {
    // extend the last sidebar column to cover the difference between the 
    // height of the content and the sum of the sidebar heights
    var lastSideBarHeight = $(".barra-laterale").last().height();
    var heightDifference = contentHeight - sidebarHeight; 
    $(".barra-laterale").last().height(lastSideBarHeight + heightDifference) 
}