chrome49 父元素设置flex:1,子元素height:100%失效

chrome49 父元素设置flex:1,子元素height:100%失效
google搜了一圈发现时父元素没有设置高度,导致子元素height:100%没有可以参考的高度。
除了设置父元素的高度、子绝父相外还有其他方法吗?之前好像有看到过往父级哪个元素加min-width:0;或者min-height:0的chrome78.png

贴上代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title></title>
        <style>
            * {
                padding: 0;
                margin: 0;
            }
            body,html{
                height: 100%;
                width: 100%;
            }
            .box {
                height: 100%;
                display: flex;
                flex-direction: column;
            }
            .header{
                height: 30px;
                flex-shrink: 0;
            }
            .main {
                flex:1;
                border: 1px solid red;
                display: flex;
            }
            .child {
                height: 100%;
                flex: 1;
                border: 1px solid blue;
            }
        </style>
    </head>
    <body>
            <div class="box">
                <div class="header">header</div>
                <div class="main">
                    <div class="child">child</div>
                    <div class="child">child</div>
                </div>
            </div>
    </body>
</html>

chrome 49下的效果图
chrome49.png

chrome 78下的效果
chrome78.png

阅读 8.5k
2 个回答

都用弹性布局了 还用height100%??

mounted() {
  this.$nextTick(() => {
    const ua = navigator.userAgent
    if (ua.indexOf('Chrome/49') !== -1) {
      const $mainContent = this.$refs['main']
      $mainContent.style.height = $mainContent.offsetHeight + 'px'
    }
  })
},
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题