私はこのマークアップを持っています:
<div class="myToggledDiv">
<div>content</div>
</div>
<div style="margin-top: 10px;">
content
</div>
jQueryを介して、.slideToggleを実行して最上位のdivを表示/非表示にします。
折りたたまれているか展開されているかにかかわらず、2つのdivの間に常に10pxのスペースがあるようにしたいと思います。
ただし、動作は、上部のdivが下にスライドしても、10ピクセルのマージンは残りますが、上部のdivが下にスライドし終わるとすぐに、10ピクセルのマージンが消えます。おそらくマージン崩壊の問題のようです。
私が思いついた解決策はこれです:
<div class="myToggledDiv">
<div>content</div>
</div>
<div style="font-size: 1px"> </div>
<div style="margin-top: 10px;">
content
</div>
&nbsp; 2つを「分離」し、10pxのマージンを維持するには、divにコンテンツが必要であるため、が重要です。
.clearfix:afterアプローチも試しましたが、このシナリオでは機能しないため、これはjQuery中心の問題である可能性があります。誰かがこれに遭遇し、余分なdivよりもエレガントな解決策を見つけましたか?