关于弹性盒flex布局overflow无作用问题

flex弹性盒较为方便,可以节省我们很多布局时间,但是有时候可能会出现一点问题

    <div className={styles.main_box}> //布局
      <div className={styles.left_box}></div>
      <div className={styles.right_box}>
        <div className={styles.right_header}></div>
        <div className={styles.right_main}>
          <div className={styles.scroll_box}>
            <div></div>
          </div>
        </div>
      </div>
    </div>

css

.main_box {
  flex: 1;
  display: flex;
  background: #fff;
  .left_box {
    width: 600px;
    height: 100%;
    background: red;
  }
  .right_box {
    flex: 1;
    display: flex;
    flex-direction: column;
    background: blue;
    .right_header {
      width: 100%;
      height: 300px;
      background: black;
    }
    .right_main {
      flex: 1;
      display: flex;
      .scroll_box {
        flex: 1;
        overflow: auto;
        background: yellow;
        >div {
          height: 1600px;
          background: palegoldenrod;
        }
      }
    }
  }
}

经过层层的弹性盒自适应布局,最终我给了类名为scroll_box的div内容超出滚动的样式,但是会发现并没有作用,内容超出时还是会让整个布局进行滚动而不是在我想要的区域滚动,这时候**我给其父级自适应的盒子添加height:1px,**这样才达到我想要的效果。包括有时我们弹性盒左边固定宽度,右边自适应,但是布局会超出宽度也有可能是这个问题,可以试着给横向布局自适应的盒子添加width:1px

.right_main {
      flex: 1;
      height: 1px; //新添加属性············
      display: flex;
      .scroll_box {
        flex: 1;
        overflow: auto;
        background: yellow;
        >div {
          height: 1600px;
          background: palegoldenrod;
        }
      }
    }

同时注意:弹性盒不能和滚动共存,也就是说当一个盒子有display:flex属性时 不要使用overflow,真想添加的话可以在弹性盒里写一个子盒子,然后给这个子盒子添加obverflow

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值