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动画效果之animation的常用样式
Mar 09 HTML / CSS
html5+css3之动画在webapp中的应用
Nov 21 HTML / CSS
使用CSS3制作响应式导航菜单的方法
Jul 12 HTML / CSS
使用CSS3配合IE滤镜实现渐变和投影的效果
Sep 06 HTML / CSS
详解CSS3中的box-sizing(content-box与border-box)
Apr 19 HTML / CSS
HTML5 与 XHTML2
Oct 17 HTML / CSS
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
May 07 HTML / CSS
Html5页面中的返回实现的方法
Feb 26 HTML / CSS
canvas学习和滤镜实现代码
Aug 22 HTML / CSS
CSS3 制作的悬停缩放特效
Apr 13 HTML / CSS
Html5新增了哪些功能
Apr 16 HTML / CSS
关于CSS浮动与取消浮动的问题
Jun 28 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
数字转英文
2006/12/06 PHP
从MySQL数据库表中取出随机数据的代码
2007/09/05 PHP
PHP实现根据浏览器跳转不同语言页面代码
2013/08/02 PHP
php-perl哈希算法实现(times33哈希算法)
2013/12/30 PHP
PHP实现简单汉字验证码
2015/07/28 PHP
mac下多个php版本快速切换的方法
2016/10/09 PHP
CI框架入门之MVC简单示例
2016/11/21 PHP
PHP中-&gt;和=&gt;的含义及使用示例解析
2020/08/06 PHP
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
AngularJs 国际化(I18n/L10n)详解
2016/09/01 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
浅析JavaScript中作用域和作用域链
2016/12/06 Javascript
EditPlus中的正则表达式 实战(2)
2016/12/15 Javascript
基于vue2.0实现简单轮播图
2017/11/27 Javascript
webpack中的热刷新与热加载的区别
2018/04/09 Javascript
如何使用 vue + d3 画一棵树
2018/12/03 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
js、jquery实现列表模糊搜索功能过程解析
2020/03/27 jQuery
[43:35]EG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python网络编程之读取网站根目录实例
2014/09/30 Python
Python上传package到Pypi(代码简单)
2016/02/06 Python
浅谈python为什么不需要三目运算符和switch
2016/06/17 Python
Python实现拷贝/删除文件夹的方法详解
2018/08/29 Python
Keras SGD 随机梯度下降优化器参数设置方式
2020/06/19 Python
sqlalchemy实现时间列自动更新教程
2020/09/02 Python
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
YOINS官网:时尚女装网上购物
2017/03/17 全球购物
学年自我鉴定范文
2013/10/01 职场文书
《桃花心木》教学反思
2014/02/17 职场文书
学生干部学习的自我评价
2014/02/18 职场文书
大学生职业生涯规划书
2014/03/14 职场文书
2014审计局领导班子民主生活会对照检查材料思想汇报
2014/09/20 职场文书
就业意向书范本
2015/05/11 职场文书
烈士陵园扫墓感想
2015/08/07 职场文书
初中教务主任竞聘演讲稿(范文)
2019/08/20 职场文书