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 相关文章推荐
全面总结使用CSS实现水平垂直居中效果的方法
Mar 10 HTML / CSS
彻底弄明白CSS3的Media Queries(跨平台设计)
Jul 27 HTML / CSS
纯CSS3实现绘制各种图形实现代码详细整理
Dec 26 HTML / CSS
css3圆角样式分享自定义按钮样式
Dec 27 HTML / CSS
纯CSS3实现的8种Loading动画效果
Jul 05 HTML / CSS
全方位了解CSS3的Regions扩展
Aug 07 HTML / CSS
CSS3实现伪类hover离开时平滑过渡效果示例
Aug 10 HTML / CSS
phonegap常用事件总结(必看篇)
Mar 31 HTML / CSS
HTML5 video 上传预览图片视频如何设置、预览视频某秒的海报帧
Aug 28 HTML / CSS
html svg生成环形进度条的实现方法
Sep 23 HTML / CSS
关于iframe跨域使用postMessage的实现
Oct 29 HTML / CSS
HTML5 Canvas 实现K线图的示例代码
Dec 23 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
德生BCL3000的电路分析和打磨
2021/03/02 无线电
php 表单验证实现代码
2009/03/10 PHP
php遍历目录输出目录及其下的所有文件示例
2014/01/27 PHP
php获取根域名方法汇总
2014/10/28 PHP
Linux中为php配置伪静态
2014/12/17 PHP
PHP Echo字符串的连接格式
2016/03/07 PHP
php 基础函数
2017/02/10 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
2018/08/15 PHP
JavaScript this 深入理解
2009/07/30 Javascript
JS date对象的减法处理实现代码
2010/12/28 Javascript
javascript ready和load事件的区别示例介绍
2013/08/30 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
2015/03/04 Javascript
JQuery使用index方法获取Jquery对象数组下标的方法
2015/05/18 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
jQuery实现的浮动层div浏览器居中显示效果
2017/02/03 Javascript
vue-cli 打包使用history模式的后端配置实例
2018/09/20 Javascript
JS函数内部属性之arguments和this实例解析
2018/10/07 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
Python中使用不同编码读写txt文件详解
2015/05/28 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
详解Python学习之安装pandas
2019/04/16 Python
python对常见数据类型的遍历解析
2019/08/27 Python
Python跑循环时内存泄露的解决方法
2020/01/13 Python
python爬虫开发之PyQuery模块详细使用方法与实例全解
2020/03/09 Python
python实现手势识别的示例(入门)
2020/04/15 Python
python 弧度与角度互转实例
2020/04/15 Python
Python如何实现大型数组运算(使用NumPy)
2020/07/24 Python
Armor Lux法国官方网站:水手服装、成衣和内衣
2020/05/26 全球购物
服装设计专业自荐书范文
2013/12/30 职场文书
小学毕业典礼主持词
2014/03/27 职场文书
投资合作协议书范本
2014/04/17 职场文书
朋友圈早安励志语录!
2019/07/08 职场文书
Java 超详细讲解IO操作字节流与字符流
2022/03/25 Java/Android
索尼ICF-36收音机评测
2022/04/30 无线电
Spring Security动态权限的实现方法详解
2022/06/16 Java/Android