ダブルラッパーにさまざまな高さの要素がいくつか含まれているセットアップがあります。それらはすべて、display: inline-block
とvertical-align: top
によって互いに隣り合わせに配置され、そのうちの1つは「アクティブ」とみなされます。特定の子要素の高さにラッパーの高さをバインドする
<section class="gallery">
<div class="gallery__content">
<img class="gallery__item gallery__item--img" src="assets/GIRM/1.png" width="350" heigth="197">
<img class="gallery__item gallery__item--img" src="assets/GIRM/2.png" width="1280" heigth="800">
<img class="gallery__item gallery__item--img" src="assets/GIRM/3.png" width="1280" heigth="511">
<img class="gallery__item gallery__item--img" src="assets/GIRM/4.png" width="1135" heigth="742">
</div>
</section>
私はoverflow: hidden
が高いです何をカットして、アクティブな子の高さ(どちらかのレベルで)ラッパーの高さを制限したいです。今、私はouterWrapper.maxHeight = activeChild.height
を設定するためにjsを使ってこれを達成します。
しかし、子供はimgだけでなく任意の要素にすることができ、子供の高さが変わることはありません。現在のjsでは、これらの発生をキャッチして、新しい値の最大高さを再適用する必要があります。移行によって高さが変わると、さらに悪化します。
いずれかのラッパーの高さをcssの特定の子要素の高さにバインドする方法はありますか?それは高さ計算のための他のすべての要素を無視することでしょうか?そうでなければ、jsでこれを行うより良い方法はありますか?
アクティブ以外のすべての子が 'display:none'に設定され、コンテナが' height:auto'に設定されている場合、それは自動的に「アクティブ」/可視の子に拡大縮小されます。 –
それでも、他の子を表示する必要があります。 (彼らは利用可能であることを示すためにサイトに目に見えますが、アクティブな子がその1つに対応するためには、その下に大きなマージンを持たせることは重要ではありません) – Tobl
非アクティブなもの、次に。 (もちろん、適切な「左」、「右」、「上」、「下」の規則) –