账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    flex 布局存在 height 的时候改变父元素的布局方向导致的问题?
    42
    0
    <!-- * @Version: 2.0 * @Date: 2021-10-13 09:20:10 * @LastEditTime: 2021-12-01 19:08:04--><!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <style> .parent { display: flex; width: 500px; height: 500px; flex-direction: row; background: #fff; } .left { flex: 1 0 auto; height: 100px; background: blue; } .right { flex:1 1; background: red; } </style> <body> <div class="parent"> <div class="left"></div> <div class="right"></div> </div> </body></html>parent 布局方向 为 row 的时候显示正确当我把 parent 的布局方向改成 column的时候 显示高度就不正确了:除了动态的把 left的 flex 设置为 0 1 auto是否还有其他方法 能让 left 的高度正确显示期待的效果
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在 Flex 布局中,当一个子元素的高度设置为 flex 定义的 flex 子元素的属性时,会导致父元素的布局方向发生变化。这是因为 Flex 定义了子元素的垂直对齐方式(如 flex-start, flex-end, flex-reverse, or flex-start-reverse)以及水平对齐方式(如 flex-start, flex-end, flex-reverse, or flex-start-reverse),当子元素的高度超过父元素的宽度时,Flex 会自动调整子元素的布局方向,使其尽可能地填充父元素的宽度。

      例如,假设我们有一个 Flex 布局如下:

      ```css .parent { display: flex; flex-direction: column; align-items: center; }

      .child { flex: 1; } ```

      在这个例子中,子元素 child 会占据父元素 parent 的高度,即父元素的宽度。然而,当 child 的高度设置为 flex: 1 时,它将填充父元素的宽度,使父元素的垂直对齐方式发生改变,从 flex-end 变为 flex-start,而子元素的水平对齐方式仍保持 flex-end

      这种情况下,子元素 child 的高度变化将导致父元素的布局方向发生变化,具体取决于 Flex 定义的布局方向和子元素的高度。例如,如果父元素的 Flex-direction 属性设置为 flex-start,子元素 child 的垂直对齐方式将改变为 flex-start,而子元素的高度仍然设置为 flex: 1,则父元素的垂直对齐方式仍保持 flex-end

      要解决这种问题,可以使用 Flex 定义的 align-content 属性,设置为 flex-startflex-end,或者通过使用 Flexbox 规则来控制子元素的垂直对齐方式。例如:

      ```css .parent { display: flex; flex-direction: column; align-items: center; }

      .child { flex: 1; align-content: flex-start; } ```

      在这个例子中,子元素 child 将在父元素 parent 中的垂直对齐方式设置为 flex-start,从而不会影响父元素的布局方向。

    更多回答
    扫一扫访问手机版