【问题标题】:jQuery to make adjacent divs the same heightjQuery使相邻的div具有相同的高度
【发布时间】:2013-03-20 18:55:26
【问题描述】:

我有一系列字段,例如:

<div class="field-label-inline">
  <div class="field-label">something1</div>
  <div class="field-items">
     <div class="field-item">sometext1</div>
  </div>
</div>
<div class="field-label-inline">
  <div class="field-label">something2</div>
  <div class="field-items">
     <div class="field-item">sometext2</div> 
</div>

我想让 .field-label div 的所有实例与相邻的 .field-items div 具有相同的高度(此 div 的高度根据其内容而异)。可悲的是,我的 jQuery 几乎不存在;这是我最好但失败的尝试:

$(document).ready(function(){    

  $('.field-label-inline > .field-label', this).each(function(){

    var itemsHeight = 0;

    itemsHeight = $(this + .field-items).height();

    $(this).height(itemsHeight);

  });
});

【问题讨论】:

标签: jquery containers


【解决方案1】:

给你的 .field-label-inline 类一个固定的高度,比如 500px,然后给 .field-label 和 .field-items 一个 100% 的高度。我会在 css 中执行此操作,但 jquery 在下面。

$(".field-label-inline").css("height","500px");
$(".field-label").css("height","100%");
$(".field-items").css("height","100%");

【讨论】:

  • .field-item div 的高度取决于 .field-item div 的内容,因此 CSS 无法提供解决方案。它必须是动态的。 jQuery 需要找到每个 .field-items div 的高度并将其应用于 .field-lable div。不幸的是,这是我无法解决 jQuery 的问题。
【解决方案2】:

最终。这行得通。不过,我不知道这是否是一个“好”的解决方案。

$(document).ready(function(){    

  $('.field-label-inline .field-label').each(function(){

  var itemsHeight = 0;

  itemsHeight = $(this).next().height();

  $(this).height(itemsHeight);

  });
});

【讨论】:

  • 对我来说看起来还不错,尽管压痕可能与修复有关。此外,您可以合并两行:var itemsHeight = $(this).next().height().
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多