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的Sass预处理器(框架)来制作居中效果
Mar 10 HTML / CSS
需要知道的CSS3动画技术
Jan 01 HTML / CSS
使用CSS3实现多列布局与多背景的技巧
Feb 29 HTML / CSS
CSS3实现线性渐变用法示例代码详解
Aug 07 HTML / CSS
基于HTML5 Canvas 实现弹出框效果
Jun 05 HTML / CSS
使用HTML5 IndexDB存储图像和文件的示例
Nov 05 HTML / CSS
HTML5 新事件 小结
Jul 16 HTML / CSS
HTML5的download属性详细介绍和使用实例
Apr 23 HTML / CSS
浅谈h5自定义audio(问题及解决)
Aug 19 HTML / CSS
Html5 APP中监听返回事件处理的方法示例
Mar 15 HTML / CSS
关于canvas.toDataURL 在iOS运行失败的问题解决
Sep 16 HTML / CSS
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
Mar 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
2019年漫画销量排行榜:鬼灭登顶 海贼单卷制霸 尾田盛赞鬼灭
2020/03/08 日漫
PHP类的使用 实例代码讲解
2009/12/28 PHP
php版微信返回用户text输入的方法
2016/11/14 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
使用javascript访问XML数据的实例
2006/12/27 Javascript
DOM下的节点属性和操作小结
2009/05/14 Javascript
jQuery JSON的解析方式分享
2011/04/05 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
2015/03/03 Javascript
Javascript实现div的toggle效果实例分析
2015/06/09 Javascript
HTML5 JS压缩图片并获取图片BASE64编码上传
2020/11/16 Javascript
JS实现的样式切换功能tableCSS实例
2016/12/30 Javascript
微信小程序 form组件详解及简单实例
2017/01/10 Javascript
前端主流框架vue学习笔记第一篇
2017/07/26 Javascript
layui点击按钮添加可编辑的一行方法
2018/08/15 Javascript
vue生命周期和react生命周期对比【推荐】
2018/09/19 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
新手入门js闭包学习过程解析
2019/10/08 Javascript
vue缓存之keep-alive的理解和应用详解
2020/11/02 Javascript
vue的hash值原理也是table切换实例代码
2020/12/14 Vue.js
使用python开发vim插件及心得分享
2014/11/04 Python
win7+Python3.5下scrapy的安装方法
2018/07/31 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
python用post访问restful服务接口的方法
2018/12/07 Python
python生成随机红包的实例写法
2019/09/02 Python
基于python tkinter的点名小程序功能的实例代码
2020/08/22 Python
用python批量下载apk
2020/12/29 Python
英国婴儿及儿童产品商店:TigerParrot
2019/03/04 全球购物
琳达·法罗眼镜英国官网:Linda Farrow英国
2021/01/19 全球购物
思想政治自我鉴定
2013/10/06 职场文书
祖国在我心中演讲稿
2014/01/15 职场文书
大学学习个人的自我评价
2014/02/18 职场文书
派出所副所长四风问题个人整改措施思想汇报
2014/10/13 职场文书
拾金不昧表扬信
2015/01/16 职场文书
具结保证书范本
2015/05/11 职场文书
Java面试题冲刺第十六天--消息队列
2021/08/07 面试题