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将文字描边及填充文字颜色的方法
Mar 07 HTML / CSS
CSS3教程(3):border-color网页边框色彩
Apr 02 HTML / CSS
css3的@media属性实现页面响应式布局示例代码
Feb 10 HTML / CSS
CSS3中box-shadow的用法介绍
Jul 15 HTML / CSS
CSS3条纹背景制作的实战攻略
May 31 HTML / CSS
浅谈CSS3特性查询(Feature Query: @supports)功能简介
Jul 31 HTML / CSS
详解css3中 text-fill-color属性
Jul 08 HTML / CSS
HTML5 解析规则分析
Aug 14 HTML / CSS
amazeui树节点自动展开折叠面板并选中第一个树节点的实现
Aug 24 HTML / CSS
CSS 实现Chrome标签栏的技巧
Aug 04 HTML / CSS
纯CSS如何禁止用户复制网页的内容
Nov 01 HTML / CSS
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
Jan 18 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将数据库中所有内容生成静态html文档的代码
2010/04/12 PHP
通过PHP current函数获取未知字符键名数组第一个元素的值
2013/06/24 PHP
Smarty实现页面静态化(生成HTML)的方法
2016/05/23 PHP
YII2框架使用控制台命令的方法分析
2020/03/18 PHP
Jquery在IE7下无法使用 $.ajax解决方法
2009/11/11 Javascript
Extjs入门之动态加载树代码
2010/04/09 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
一个简单的jquery的多选下拉框(自写)
2014/05/05 Javascript
jQuery+Ajax实现无刷新分页
2015/10/30 Javascript
jquery验证邮箱格式是否正确实例讲解
2015/11/16 Javascript
jQuery的事件预绑定
2016/12/05 Javascript
js实现返回顶部效果
2017/03/10 Javascript
vue.js 嵌套循环、if判断、动态删除的实例
2018/03/07 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
2019/01/23 Javascript
Layui 解决表格异步调用后台分页的问题
2019/10/26 Javascript
VueCli4项目配置反向代理proxy的方法步骤
2020/05/17 Javascript
探究一道价值25k的蚂蚁金服异步串行面试题
2020/08/21 Javascript
如何利用JavaScript编写一个格斗小游戏
2021/01/06 Javascript
Python 文件和输入输出小结
2013/10/09 Python
Python实现的检测web服务器健康状况的小程序
2014/09/17 Python
python 生成器协程运算实例
2017/09/04 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
2019/05/05 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
2020/01/18 Python
Python selenium页面加载慢超时的解决方案
2020/03/18 Python
Python包和模块的分发详细介绍
2020/06/19 Python
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
编写类String的构造函数、析构函数和赋值函数
2012/05/29 面试题
企业授权委托书范本
2014/04/02 职场文书
企业员工集体活动方案
2014/08/17 职场文书
关于清明节的演讲稿
2014/09/13 职场文书
个人工作表现评价材料
2014/09/21 职场文书
2014年保险公司工作总结
2014/11/22 职场文书
演讲开场白台词大全
2015/05/29 职场文书
歼十出击观后感
2015/06/11 职场文书
2016年五一劳动节专题校园广播稿
2015/12/17 职场文书
python之PySide2安装使用及QT Designer UI设计案例教程
2021/07/26 Python