Elastische Eigenschaften richtig nutzen, um elastische Container zu verschachteln
P粉369196603
2023-08-24 11:43:49
<p>Ich habe einige Probleme bei der korrekten Verwendung von Flexbox und hätte gerne eine Klarstellung zur Verschachtelung von übergeordneten und untergeordneten Elementen. </p>
<p>Ich weiß, dass untergeordnete Elemente die Flex-Eigenschaft des übergeordneten Elements erben, aber was passiert mit weiteren untergeordneten Elementen (z. B. „Enkelkindern“)? Was ist in diesem Fall die richtige Verwendung von Flexbox? </p>
<p>Mit anderen Worten: Muss ich <code>display: flex</code> auch auf untergeordnete Elemente anwenden? Überschreibt dies die Flex-Eigenschaft des übergeordneten Elements des ersten untergeordneten Elements? </p>
<p><br /></p>
<pre class="brush:css;toolbar:false;">.parent-container {
Anzeige: Flex;
Flex: 1 0 100 %;
Hintergrundfarbe:gelb;
}
.child-container {
Flex: 1 1 50 %;
Hintergrundfarbe: blau;
}
.baby-of-child-container {
Flex: 1 1 50 %;
Hintergrundfarbe: grün;
}</pre>
<pre class="brush:html;toolbar:false;"><div class='parent-container'>
<div class='child-container'>
<div class='baby-of-child-container'>child</div>
<div class='baby-of-child-container'>child</div>
</div>
<div class='child-container'>
<div class='baby-of-child-container'>child</div>
<div class='baby-of-child-container'>child</div>
</div>
</div></pre>
<p><br /></p>
一个flex格式化上下文的范围仅限于父子关系。
这意味着flex容器始终是父级,而flex项目始终是子级。Flex属性仅在此关系中起作用。
超出子级的flex容器的后代不属于flex布局,也不会接受flex属性。
为了将flex属性应用于子级,您始终需要将
display: flex
或display: inline-flex
应用于父级。某些flex属性仅适用于flex容器(例如
justify-content
、flex-wrap
和flex-direction
),而某些flex属性仅适用于flex项目(例如align-self
、flex-grow
和flex
)。然而,flex项目也可以是flex容器。在这种情况下,该元素可以接受所有flex属性。由于每个属性执行不同的功能,不存在内部冲突,也不需要覆盖任何内容。