兄弟项目在flex/grid布局中被限制了大小
P粉134288794
2023-08-24 12:52:48
<p>我有两个兄弟元素,每个元素都包含动态内容。</p>
<pre class="brush:php;toolbar:false;"><div class="flex">
<div class="sibling-1"></div>
<div class="sibling-2"></div>
</div></pre>
<p>在某些情况下,<code>sibling-1</code>的内容会比<code>sibling-2</code>多,反之亦然。
我希望第二个元素<code>sibling-2</code>的高度始终等于第一个<code>sibling-1</code>的高度。如果<code>sibling-2</code>的高度大于<code>sibling-1</code>的高度,则会溢出<code>flex</code> div并可滚动。</p>
<p>有没有办法使用Flexbox来实现这个效果?</p>
基本上不行。flex等高特性是基于容器的高度,而不是任何特定的兄弟元素。
所以,兄弟元素1和兄弟元素2总是可以等高。
但是,flexbox没有内置的机制来限制项目的高度与一个兄弟元素的高度相同。
考虑使用JavaScript或CSS定位属性。
这里有一个使用绝对定位的示例:
jsFiddle
是的,这是可能的。保留兄弟节点设置的最大高度,将其他节点的
flex-basis: 0
和flex-grow: 1
设置为,根据规范,它们会扩展到与兄弟节点相同的高度。没有绝对定位。没有在任何元素上设置高度。