css3中flex布局宽度不生效的解决


Posted in HTML / CSS onDecember 09, 2020

两列布局项目中经常会用到,很多种方法可以做这样的效果

css3中flex布局宽度不生效的解决

但是最方便的还是要属flex了,给外层父元素设置display:flex;然后子元素,宽度自适应的那个设置
flex-grow:1;,另外一个设置固定宽度就可以做到,一个固定另一个自适应了。

具体代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>flex 宽度不生效</title>
</head>
<body>
  <style>
    /* 重置样式 */
    * {
      margin: 0px;
      padding: 0px;
    }
    /* 设置外层display为flex */
    .box {
      display: flex;
      height: 100px;
      width: 100%;
    }
    /* 左边自适应 */
    .box .left {
      flex-grow: 1;
      background: red;
    }
    /* 右边固定 */
    .box .right {
      width: 200px;
      background: yellow;
    }
  </style>
  <!-- 外层盒子 -->
  <div class="box">
    <!-- 左侧 -->
    <div class="left"></div>
    <!-- 右侧 -->
    <div class="right"></div>
  </div>
</body>
</html>

这段代码的运行结果就是上面截图那样,但是这个代码有一个小小的bug,那就是当我们左边(自适应那边)内部如果有内容,并且内容的宽度超过了left的宽度的时候,就会把右边(固定宽度)挤小,你会发现你给的固定宽度(例子中的200px)不生效了,或者出现滚动条。
我们在左边加一点内容,并且让他超出宽度。

/* 超出的内容 样式 */
    .box .left .content {
      width: 1000px;
    }
<!-- 左侧 -->
    <div class="left">
      <!-- 超出的内容 -->
      <div class="content"></div>
    </div>

运行结果:

css3中flex布局宽度不生效的解决

内容超出,并出现了滚动条。这个问题很好解决,只需要在left上面加上溢出隐藏的属性,就可以了。

/* 左边自适应 */
    .box .left {
      flex-grow: 1;
      background: red;
      overflow: hidden;
    }

css3中flex布局宽度不生效的解决

但是问题又来了,右边出来了,可是它的宽度变小了,不足200了。
这个问题呢,其实也很容易,给右边的div(right)加上min-width:200px;就完美了。

/* 右边固定 */
    .box .right {
      width: 200px;
      min-width: 200px;
      background: yellow;
    }

css3中flex布局宽度不生效的解决

这样不管你,什么屏幕,或者怎么拖放都能完美兼容了。。。

到此这篇关于css3中flex布局宽度不生效的解决的文章就介绍到这了,更多相关flex布局宽度不生效内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

HTML / CSS 相关文章推荐
CSS3地图动态实例代码(圆圈向外扩散)
Jun 15 HTML / CSS
纯CSS3实现圆角效果(含IE兼容解决方法)
May 07 HTML / CSS
浅谈CSS3中display属性的Flex布局的方法
Aug 14 HTML / CSS
HTML5 placeholder属性详解
Jun 22 HTML / CSS
html5 乒乓球(碰撞检测)实例二
Jul 25 HTML / CSS
HTML5 Convas APIs方法详解
Apr 24 HTML / CSS
五个2015 年最佳HTML5 框架
Nov 11 HTML / CSS
用html5绘制折线图的实例代码
Mar 25 HTML / CSS
html5 div布局与table布局详解
Nov 16 HTML / CSS
AmazeUI 点击元素显示全屏的实现
Aug 25 HTML / CSS
CSS3新特性详解(五):多列columns column-count和flex布局
Apr 30 HTML / CSS
sass 常用备忘案例详解
Sep 15 HTML / CSS
html+css3实现的登录界面
Dec 09 #HTML / CSS
CSS3 实现的缩略图悬停效果
Dec 09 #HTML / CSS
CSS3 实现的火焰动画
Dec 07 #HTML / CSS
CSS3 实现的加载动画
Dec 07 #HTML / CSS
CSS3实现的渐变幻灯片效果
Dec 07 #HTML / CSS
详解CSS3+JS完美实现放大镜模式
Dec 03 #HTML / CSS
css3中仿放大镜效果的几种方式原理解析
Dec 03 #HTML / CSS
You might like
flash用php连接数据库的代码
2011/04/21 PHP
PHP实现取得HTTP请求的原文
2014/08/18 PHP
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
2014/10/20 PHP
php curl操作API接口类完整示例
2019/05/21 PHP
bootstrap table 服务器端分页例子分享
2015/02/10 Javascript
JS简单实现DIV相对于浏览器固定位置不变的方法
2016/06/17 Javascript
不间断循环滚动效果的实例代码(必看篇)
2016/10/08 Javascript
js实现控制textarea输入字符串的个数,鼠标按下抬起判断输入字符数
2016/10/25 Javascript
canvas 弹幕效果(实例分享)
2017/01/11 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
vue 虚拟dom的patch源码分析
2018/03/01 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
javascript+css实现进度条效果
2020/03/25 Javascript
JS判断浏览器类型与操作系统的方法分析
2020/04/30 Javascript
Node.js 中判断一个文件是否存在
2020/08/24 Javascript
Javascript var变量删除原理及实现
2020/08/26 Javascript
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
python最小生成树kruskal与prim算法详解
2019/01/17 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
opencv 图像滤波(均值,方框,高斯,中值)
2020/07/08 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
Merchant 1948澳大利亚:新西兰领先的鞋类和靴子供应商
2018/03/24 全球购物
Crocs波兰官方商店:女鞋、男鞋、童鞋、洞洞鞋
2019/10/08 全球购物
运动会邀请函范文
2014/01/31 职场文书
学生感冒英文请假条
2014/02/04 职场文书
求职信内容怎么写
2014/05/26 职场文书
计生工作先进事迹
2014/08/15 职场文书
镇创先争优活动总结
2014/08/28 职场文书
旷课检讨书范文
2014/10/30 职场文书
个人自荐书怎么写
2015/03/26 职场文书
新员工入职感言范文!
2019/07/04 职场文书
SQL SERVER中常用日期函数的具体使用
2021/04/08 SQL Server
redis连接被拒绝的解决方案
2021/04/12 Redis