2013-05-09 8 views
6

コンテナdivのサイズが分かっているときに2つのdivオーバーラップを作成するのは簡単ですが、divハイグができない場合はどうすればいいですか?2つのdivがコンテナの高さなしで可変高さでオーバーラップしています

私は、コンテナの高さを操作することなく、それを実行しようとしました:#text3の上に行くと、それを「プッシュ」していない#text2 http://jsfiddle.net/AJfAV/ しかし。 #containerは自動的にサイズ変更を行うことができますか?

私はjqueryのUIを使用して、私の目標を達成するために管理が、私は、これはエレガントな解決策ではない感じ。 http://jsfiddle.net/AJfAV/6/

+0

#containerの幅が固定されていれば問題ですか? –

答えて

2

が、これは何が必要ですか?

Updated fiddle:

私はこのように、jQueryのを使用して、デフォルトにheightautoを設定しています:

$("#container").css("height", "auto"); 

ます。また、設定することができます。CSSでheight: auto;を。

+0

これは動作しません。少なくとも私が期待した通り。 – user1707414

+0

私は、私が期待していたことを正確に示すためのソリューションを追加しましたが、コンテナの高さは固定しなければならないと驚いています。http://jsfiddle.net/AJfAV/5/ ソリューション/フィドルでは、「text3:これはtext1とtext2の下に表示されます」というテキストはtext1の下には表示されません。 – user1707414

0

ポジションが必要ですか?絶対ですか?アレンジメントをしたくない場合は絶対配置を使用できますが、プレースメントは使用できます。絶対配置は要素を要素の流れから完全に取り除きます。彼らはその存在の何も知らない。

フロートとフロートを囲む手法を使用できます。私はクリアを使用しています:

.cl-left { 
    clear: left; 
    height: .1px; 
    font-size: 0; 
    line-height: 0; 
} 

<div class="cl-left">&nbsp;</div>を忘れずに追加してください。

さらに、マイナスのマージンが使用されます。したがって、#text2は右に釘付けされます。

http://jsfiddle.net/AJfAV/7/

+0

本当に私は絶対的な必要はありません。私は要素の流れをそのまま保ちたいのですが、ポジションなしの解決策を見つけることはできません:絶対的です。 – user1707414

+0

浮動小数点数を使用できますが、フェーディングが表示プロパティに影響するため、CSSテーブルは機能しません。また、余白は表のセルには適用されません。 – Salomonder

+0

私は誤解しましたか? – Salomonder

0

あなたは#text1#text2の絶対位置を削除した場合、これは解決することができます。

および#text2を、float:leftの両方を作成し、#text2の場合にmargin-left:-30pxと設定することによって、オーバーラップ#text1にする。

今のはそれをテストしてみましょう:http://jsfiddle.net/RPe4H/

問題は今#text1がトグルされたときにjQueryのトグルが行われている要素にdisplay:noneを設定しているため、#text2#containerの左上、この出来事に浮かぶだろうということです。

は今、これを解決するために、それは display:noneに設定されているときに #textはまた、あなたが #text1のコンテナに min-height:1pxを設定する必要があり、流れに影響を与えませんが、同じ幅で、容器の内側に#テキスト1と#テキスト2を入れました。

これは期待どおりに動作しています。http://jsfiddle.net/MyyF6/1/

関連する問題