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制作简单的3d半透明立方体图片展示
Mar 25 HTML / CSS
CSS3 分类菜单效果
May 27 HTML / CSS
浅析CSS3 中的 transition,transform,translate之间区别和作用
Mar 26 HTML / CSS
详解HTML5 LocalStorage 本地存储
Dec 23 HTML / CSS
HTML5 b和i标记将被赋予真正的语义
Jul 16 HTML / CSS
让IE支持HTML5的方法
Dec 11 HTML / CSS
html特殊符号示例 html特殊字符编码对照表
Jan 14 HTML / CSS
实例讲解使用HTML5 Canvas绘制阴影效果的方法
Mar 25 HTML / CSS
HTML5中使用postMessage实现两个网页间传递数据
Jun 22 HTML / CSS
详解Canvas 跨域脱坑实践
Nov 07 HTML / CSS
CSS 制作波浪效果的思路
May 18 HTML / CSS
深入理解CSS 中 transform matrix矩阵变换问题
Aug 30 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
PHP中,文件上传
2006/12/06 PHP
Mysql数据库操作类( 1127版,提供源码下载 )
2010/12/02 PHP
php加密解密实用类分享
2014/01/07 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
设定php简写功能的方法
2019/11/28 PHP
javascript Event对象详解及使用示例
2013/11/22 Javascript
两种不同的方法实现js对checkbox进行全选和反选
2014/05/13 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
学习使用bootstrap基本控件(table、form、button)
2016/04/12 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
es6的数字处理的方法(5个)
2017/03/16 Javascript
vue中SPA单页面应用程序详解
2017/11/07 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
2018/07/10 Javascript
vue项目中使用tinymce编辑器的步骤详解
2018/09/11 Javascript
vue项目上传Github预览的实现示例
2018/11/06 Javascript
vue组件通信传值操作示例
2019/01/08 Javascript
javascript实现点击星星小游戏
2019/12/24 Javascript
Python使用random和tertools模块解一些经典概率问题
2015/01/28 Python
Python之用户输入的实例
2018/06/22 Python
Python 3.6 -win64环境安装PIL模块的教程
2019/06/20 Python
python如何删除文件中重复的字段
2019/07/16 Python
Django如何简单快速实现PUT、DELETE方法
2019/07/24 Python
使用python实现回文数的四种方法小结
2019/11/24 Python
python enumerate内置函数用法总结
2020/01/07 Python
python+OpenCV实现图像拼接
2020/03/05 Python
python小程序之4名牌手洗牌发牌问题解析
2020/05/15 Python
猎人靴英国官网:Hunter Boots
2017/02/02 全球购物
Currentbody法国:健康与美容高科技产品
2020/08/16 全球购物
公司门卫岗位职责
2014/03/15 职场文书
社区安全生产月活动总结
2014/07/05 职场文书
2014年建筑工程工作总结
2014/12/03 职场文书
学校禁毒宣传活动总结
2015/05/08 职场文书
孔繁森观后感
2015/06/10 职场文书