div内の最も高い要素の高さを取得する関数が必要です。
内部に他の多くの要素が含まれている(動的に生成された)要素があり、$(elem).height()を使用してコンテナ要素の高さを要求すると、その中の一部のコンテンツよりも低い高さが得られます。内部の要素のいくつかは、この要素が持っていると言っているサイズよりも大きい画像です。
高さを取得できるように、最も高い要素を知る必要があります。
div内の最も高い要素の高さを取得する関数が必要です。
内部に他の多くの要素が含まれている(動的に生成された)要素があり、$(elem).height()を使用してコンテナ要素の高さを要求すると、その中の一部のコンテンツよりも低い高さが得られます。内部の要素のいくつかは、この要素が持っていると言っているサイズよりも大きい画像です。
高さを取得できるように、最も高い要素を知る必要があります。
http://css-tricks.com/snippets/jquery/equalize-heights-of-divsで、このスニペットがより単純で短いように見えることがわかりました。
var maxHeight = 0;
$(yourelemselector).each(function(){
var thisH = $(this).height();
if (thisH > maxHeight) { maxHeight = thisH; }
});
$(yourelemselector).height(maxHeight);
あなたはいつでもすることができます:
var t=0; // the height of the highest element (after the function runs)
var t_elem; // the highest element (after the function runs)
$("*",elem).each(function () {
$this = $(this);
if ( $this.outerHeight() > t ) {
t_elem=this;
t=$this.outerHeight();
}
});
再び機能するように編集しました。
div要素が子よりも小さい場合、子はおそらく浮動しています。divを子供と同じくらい大きくすることを許可できますか?
可能であれば、下部にクリアリング要素を追加して、divが子をラップするようにします。
<div id="someParent">
<p>test</p>
<img src="test1.png" alt="test1" style="float: left" />
<img src="test2.png" alt="test2" style="float: left" />
<div style="clear: both;"></div>
</div>
または、clearfix CSSソリューションを適用して、ほぼ同じことを実行しますが、追加のマークアップやクリアdivは使用しません。
含まれているdivは、最も高い子要素と同じ高さを取得し、次の方法で取得できます。
$("#someParent").height();
私の場合、レスポンシブデザインで使用する必要があったため、ウィンドウのサイズ変更で機能するようにしました。
function fixHeight(elem){
var maxHeight = 0;
$(elem).css('height','auto');
$(elem).each(function(){
if ($(this).height() > maxHeight) { maxHeight = $(this).height(); }
});
$(elem).height(maxHeight);
}
$(window).resize(function () {
fixHeight('.myelement');
});
$(document).ready(function(e) {
fixHeight('.myelement');
});
これが誰かに役立つことを願っています!
幸せなコーディングの人!:)