CSS教程

关注公众号 jb51net

关闭
网页制作 > CSS > CSS教程 >

flex布局子元素宽度超出父元素问题及解决方案

codeCat!

1. 第一次遇到这个问题的场景

先看效果图,大家可以看一下下面的样式,很明显左边和右边的盒子我是给的定宽,但是被挤压了
这个是我在项目中遇到的一个bug,使用的 flex 布局,由于我动态的修改绿色盒子的显示与隐藏,导致两边盒子的挤压

<style>
.container {
  width: 1400px;
  display: flex;
  height: 100vh;
}
.box1 {
  background-color: red;
  width: 300px;
}
.box2 {
  background-color: yellow;
  flex: 1;
}
.box3 {
  background-color: green;
  width: 400px;
}
</style>
<div class="container">
  <div class="box1"></div>
  <div class="box2">
    <div>
      ...el-table
    </div>
  </div>
  <div class="box3 none"></div>
</div>

2. 第二种情况

很明显,红色的盒子没有300px

在这里插入图片描述

<style>
  .container {
    display: flex;
    width: 600px;
    height: 600px;
  }
  .box1 {
    background-color: red;
    width: 300px;
  }
  .box2 {
    background-color: yellow;
    flex: 1;
  }
</style>
<div class="container">
  <div class="box1"></div>
  <div class="box2">Loremipsumdolorsitametconsecteturadipisicingelit.Quasi,eveniet?</div>
</div>

3. 问题原因

4. 解决方案

4.1 方案一

4.2 方案二

到此这篇关于flex布局子元素宽度超出父元素问题及解决方案的文章就介绍到这了,更多相关flex布局子元素宽度超出内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!