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翻转效果应用示例
Apr 08 HTML / CSS
css3 position fixed固定居中问题解决方案
Aug 19 HTML / CSS
纯css3实现图片翻牌特效
Mar 10 HTML / CSS
CSS3实现的炫酷菜单代码分享
Mar 12 HTML / CSS
详解css3 flex弹性盒自动铺满写法
Sep 17 HTML / CSS
HTML4和HTML5之间除了相似以外的10个主要不同
Dec 13 HTML / CSS
用HTML5制作一个简单的桌球游戏的教程
May 12 HTML / CSS
很酷的HTML5电子书翻页动画特效
Feb 25 HTML / CSS
浅谈移动端网页图片预加载方案
Nov 05 HTML / CSS
HTML文本属性&amp;颜色控制属性的实现
Dec 17 HTML / CSS
聊聊CSS粘性定位sticky案例解析
Jun 01 HTML / CSS
html网页引入svg图片的4种方式
Aug 05 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更改目录及子目录下所有的文件后缀扩展名的代码
2010/10/12 PHP
PHP array操作10个小技巧分享
2011/06/23 PHP
php根据操作系统转换文件名大小写的方法
2014/02/24 PHP
php实现的日历程序
2015/06/18 PHP
php使用curl获取header检测开启GZip压缩的方法
2018/08/15 PHP
另类调用flash无须激活的方法
2006/12/27 Javascript
HTML-CSS群中单选引发的“事件”
2007/03/05 Javascript
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
浅析LigerUi开发中谨慎载入common.css文件
2013/07/09 Javascript
JS实现时间格式化的方式汇总
2013/10/16 Javascript
JS实现仿Windows7风格的网页右键菜单效果代码
2015/09/11 Javascript
javascript的几种继承方法介绍
2016/03/22 Javascript
微信小程序 实战程序简易新闻的制作
2017/01/09 Javascript
jQuery图片查看插件Magnify开发详解
2017/12/25 jQuery
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
2018/04/26 jQuery
使用rollup打包JS的方法步骤
2018/12/05 Javascript
ES10 特性的完整指南小结
2019/03/04 Javascript
JS简单数组排序操作示例【sort方法】
2019/05/17 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
详解node.js创建一个web服务器(Server)的详细步骤
2021/01/15 Javascript
[04:32]DOTA2著名解说配音敌法师 现场专访海涛怒切假腿
2013/12/20 DOTA
使用django的ORM框架按月统计近一年内的数据方法
2019/07/18 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
详解python statistics模块及函数用法
2019/10/27 Python
PyQt中使用QtSql连接MySql数据库的方法
2020/07/28 Python
Visual Studio Code搭建django项目的方法步骤
2020/09/17 Python
python中scipy.stats产生随机数实例讲解
2021/02/19 Python
IE兼容css3圆角的实现代码
2011/07/21 HTML / CSS
经贸专业毕业生求职信
2014/03/23 职场文书
企业形象策划方案
2014/05/29 职场文书
2014购房个人委托书范本
2014/10/12 职场文书
结婚保证书(三从四德)
2015/02/26 职场文书
企业财务人员岗位职责
2015/04/14 职场文书
运动会致辞稿
2015/07/29 职场文书
合作合同协议书
2016/03/21 职场文书
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python