flex1时内容溢出

本文讲述了如何使用Flex布局,通过设置flex:1使黄色内容区域根据容器宽度减去红色部分,确保红色部分不被溢出。关键在于理解flex-basis和flex-grow的作用以及如何调整width属性以达到预期效果。
摘要由CSDN通过智能技术生成

目标效果:右边黄色部分填充减去红色部分的剩余部分

原理: flex: 1
在这里插入图片描述
代码:

<div class="box">
    <div class="inner-left"></div>
    <div class="inner-right"><span class="inner-right-content">1111111111111111111111111111111111111111111111111</span></div>
  </div>
.box {
      display: flex;
      align-items: center;
      justify-items: center;
      width: 300px;
      height: 100px;
      border: 1px solid black;
    }

    .inner-left {
      width: 100px;
      height: 20px;
      background-color: red;
    }

    .inner-right {
      flex: 1;
    }

    .inner-right-content {
      display: inline-block;
      width: 100%;
      height: 20px;
      background-color: yellow;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

实际效果:黄色部分超长并将红色部分挤出容器

在这里插入图片描述

原因:
flexflex-grow / flex-shrink / flex-basis的简写
flex: 1flex-basisauto;

flex-grow 项在 flex 容器中分配剩余空间的相对比例,主尺寸是项的宽度或高度,这取决于flex-direction值。
剩余空间是 flex 容器的大小减去所有 flex 项的大小加起来的大小。如果所有的兄弟项目都有相同的 flex-grow 系数,那么所有的项目将剩余空间按相同比例分配,否则将根据不同的 flex-grow 定义的比例进行分配。

flex-basis 指定了 flex 元素在主轴方向上的初始大小。如果不使用 box-sizing 改变盒模型的话,那么这个属性就决定了 flex 元素的内容盒(content-box)的尺寸。
一个元素同时被设置了 flex-basis (除值为 auto 外) 和 width (或者在 flex-direction: column 情况下设置了height) , flex-basis 具有更高的优先级。
flex-basis 属性 取值 content 或者 <'width'>.
width 值可以是 <length>; 该值也可以是一个相对于其父弹性盒容器主轴尺寸的百分数 。负值是不被允许的。默认为 auto即项目本来的大小)。
content: 基于 flex 的元素的内容自动调整大小。

再来看我们的例子:
红色:100px
黄色:460px

可以看到目前flex-basis 为默认的 auto,即项目本来的大小。我们可为其设置width,因为我们需要占位的地方<=200, 所以width设为0-200皆可。因为又是左边red部分为自适应,不一定能计算出右边黄色部分所需占用宽度,所以通常设置width: 0就好啦。

.inner-right {
   flex: 1;
   width: 0;
 }

如图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值