2012-02-21 16 views
1

私はこのJavaScriptコードを持っている:DIV - 同じ高さのjQueryやCSS

$(document).ready(function() { 
    var leftHeight = $('#maincontent').height(); 
    $('#sidemenu').css({'height':leftHeight}); 
}); 

これは動作しますが、それは非常に限られています。 #sidemenuが展開されている場合(サブメニューのために例)、div内で大きくなります。

#sidemenuまたは#maincontentが大きいほど(高さが増えた)、それらがお互いに続いている場合はどうすればいいですか。

これをCSSで行うことができれば、私はこれも開いています。

よろしくお願いいたします。

+1

これはレイアウトのためであれば、CSSのソリューションは、おそらくだろうより良い。 – 472084

+0

DOM要素にイベントをアタッチして属性の変数の変更をリッスンすることはできないと思いますが、自分でこのような記述をする必要があります。 – Laradda

+0

.cssソリューションを持っている人は誰ですか? – oliverbj

答えて

2

忘れてしまったjavascript。

#sidemenu#maincontentに入力し、固定幅を与えて左に浮かします。その後、#wrapperという区切りに#maincontent(ただし、#sidebarは含まれていません)のすべてをラップします(言います)。 #wrapperには、#maincontentの幅から#sidemenuの幅を差し引いた幅に等しい幅を与え、それも左に浮かせます。閉鎖直前のよい測定のために</div>#maincontentを入れて<br style="clear: both" />を入れてください。

#maincontent(それがする必要がある場合)sidemenuに合わせて拡大しますが、#maincontentのコンテンツも独自のラッパーdivの中にそのように、その短すぎる場合#sidemenuの下に折り返されません。

これが役に立った。ここ

更新

は一例です:

HTML

<div id="maincontent"> 
    <div id="sidemenu"> 
    <ul> 
     <li><a href="#asd">A Link</a></li> 
     <li><a href="#asd">A Link</a></li> 
     <li><a href="#asd">A Link</a></li> 
     <li><a href="#asd">A Link</a></li> 
     <li><a href="#asd">A Link</a></li> 
    </ul> 
    </div> 

    <div id="wrapper"> 
    This is where your text goes in the main content area of the site. 
    </div> 

    <br style="clear: both" /> 
</div> 

CSS

#maincontent { 
    width: 960px; 
} 

#sidemenu { 
    width: 330px; 
    float: left; 
} 

#wrapper { 
    width: 660px; 
    float: left; 
} 
+0

だから私は固定して何を与えて、左に浮かべますか? #sidemenu、または#maincontent? – oliverbj

+0

私は例を掲示し、5分を与えます。 –

+0

私は例を掲載しました。 :)私の例では、#maincontentは#sidemenuと#wrapperのいずれか高い方の高さになります。 –