【问题标题】:jQuery equal div heights with dynamic contentjQuery 与动态内容相等的 div 高度
【发布时间】:2012-04-25 22:03:20
【问题描述】:

我正在尝试实现等高的列,其中之一包含扩展菜单。

几乎使用下面的代码(基于this code)让它工作。您可以看到 this pagethis page 上的列高度相同。

唯一的问题是,在后一页和任何其他短页上,内容下方都有一个空格。计算的高度是否包括隐藏的子菜单?如果是这样,我可以停止这样做还是需要使用不同的代码?

提前感谢您的指导!

简化的 HTML:

<div id="body-container">
<div id="primary-menu">
  <div class="menu">
  <ul>
  <li>Menu item</li>
  <li>Menu item</li>
  <li>Menu item
    <ul class="sub-menu" style="float: none; display: none; visibility: hidden;">
    <li>Submenu item</li>
    <li>Submenu item</li>
  </li>
  </ul>
  </div>
</div>
<div id="container">
Main content
</div>
</div>

jQuery:

jQuery(document).ready( function(){
    function equalHeight(){
        var heightArray = jQuery("#body-container>div").map( function(){
                 return  jQuery(this).height();
                 }).get();
        var maxHeight = Math.max.apply( Math, heightArray);
        jQuery("#container").height(maxHeight);
        jQuery("#primary-menu").height(maxHeight);
            }
    equalHeight();
});

【问题讨论】:

  • 不久前我有过类似的问题。看它。 stackoverflow.com/questions/7821184/…
  • 感谢 Dejan,但这与我的问题中的代码相同。也就是说,它似乎在其计算中包含了隐藏菜单,因此在主页和其他较短的页面上留下了很大的空白。

标签: jquery css height


【解决方案1】:

尝试使用 visiblity:collapse 代替 visiblity:hidden.... 因为 hidden 隐藏了内容但它计算了内容的空间...但是 collapse 将内容与空间一起隐藏了...try this...

【讨论】:

  • 感谢 lakshimi,但 visiblity:collapse 似乎并没有为我隐藏空间(Mac 的 Firefox 和 Chrome)
  • 对于 mac,它不能在 chrome 中工作。但我认为它适用于 ff...check it...
  • 好的,再次感谢 lakshmi,但我真的希望它也能在 Chrome 中工作。另外......这不应该只用于表格元素吗?
  • 你是对的......只有在表格中使用时它才会作为折叠......在其他地方折叠只作为隐藏......你是否在没有可见性的情况下尝试了这段代码......就像 .... 这样....
猜你喜欢
  • 2014-12-03
  • 2011-11-04
  • 1970-01-01
  • 2012-11-15
  • 2010-12-07
  • 2010-11-29
  • 1970-01-01
  • 2010-10-22
相关资源
最近更新 更多