搜索

首页  >  问答  >  正文

正确使用弹性属性的方法来嵌套弹性容器

<p>我在正确使用flexbox时遇到了一些问题,想要对父元素和子元素的嵌套有一些澄清。</p> <p>我知道子元素会继承父元素的flex属性,但是对于进一步的后代元素(例如“孙子”)会发生什么呢?在这种情况下,flexbox的正确用法是什么?</p> <p>换句话说,我是否也需要将<code>display: flex</code>应用于子元素,以应用于子元素的子元素?这样会覆盖第一个子元素的父元素的flex属性吗?</p> <p><br /></p> <pre class="brush:css;toolbar:false;">.parent-container { display: flex; flex: 1 0 100%; background-color:yellow; } .child-container { flex: 1 1 50%; background-color: blue; } .baby-of-child-container { flex: 1 1 50%; background-color: green; }</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>
P粉369196603P粉369196603466 天前420

全部回复(1)我来回复

  • P粉200138510

    P粉2001385102023-08-25 10:39:34

    一个flex格式化上下文的范围仅限于父子关系。

    这意味着flex容器始终是父级,而flex项目始终是子级。Flex属性仅在此关系中起作用。

    超出子级的flex容器的后代不属于flex布局,也不会接受flex属性。

    为了将flex属性应用于子级,您始终需要将display: flexdisplay: inline-flex应用于父级。

    某些flex属性仅适用于flex容器(例如justify-contentflex-wrapflex-direction),而某些flex属性仅适用于flex项目(例如align-selfflex-growflex)。

    然而,flex项目也可以是flex容器。在这种情况下,该元素可以接受所有flex属性。由于每个属性执行不同的功能,不存在内部冲突,也不需要覆盖任何内容。

    回复
    0
  • 取消回复