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实现类似翻书效果的过渡动画的示例代码
Sep 06 HTML / CSS
CSS3 box-sizing属性
Apr 17 HTML / CSS
css3制作彩色边线3d立体按钮的示例(css3按钮)
May 06 HTML / CSS
基于html和CSS3制作酷炫的导航栏
Sep 23 HTML / CSS
css3边框_动力节点Java学院整理
Jul 11 HTML / CSS
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
Apr 10 HTML / CSS
详解HTML5中ol标签的用法
Sep 08 HTML / CSS
HTML5触摸事件演化tap事件介绍
Mar 25 HTML / CSS
HTML5头部标签的一些常用信息小结
Oct 23 HTML / CSS
详解canvas绘制多张图的排列顺序问题
Jan 21 HTML / CSS
萌新HTML5 入门指南(二)
Nov 09 HTML / CSS
完美实现CSS垂直居中的11种方法
Mar 27 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
PHP执行速率优化技巧小结
2008/03/15 PHP
PHP下通过系统信号量加锁方式获取递增序列ID
2009/09/25 PHP
五款常用mysql slow log分析工具的比较分析
2011/05/22 PHP
检查用户名是否已在mysql中存在的php写法
2014/01/20 PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
2014/09/22 PHP
支持中文的PHP按字符串长度分割成数组代码
2015/05/17 PHP
XENON基于JSON变种
2010/07/27 Javascript
js列举css中所有图标的实现代码
2011/07/04 Javascript
JQuery each()嵌套使用小结
2014/04/18 Javascript
jquery动态加载js/css文件方法(自写小函数)
2014/10/11 Javascript
Javascript原型链和原型的一个误区
2014/10/22 Javascript
详解JS中的快速排序与冒泡
2017/01/10 Javascript
vue使用stompjs实现mqtt消息推送通知
2017/06/22 Javascript
Vue2.0 实现移动端图片上传功能
2018/05/30 Javascript
生产制造追溯系统之再说条码打印
2019/06/03 Javascript
python函数形参用法实例分析
2015/08/04 Python
python Socket之客户端和服务端握手详解
2017/09/18 Python
Python基本socket通信控制操作示例
2019/01/30 Python
opencv与numpy的图像基本操作
2019/03/08 Python
PyQt5重写QComboBox的鼠标点击事件方法
2019/06/25 Python
Django 开发调试工具 Django-debug-toolbar使用详解
2019/07/23 Python
Python 如何提高元组的可读性
2019/08/26 Python
如何用PyPy让你的Python代码运行得更快
2020/12/02 Python
YSL Beauty加拿大官方商城:圣罗兰美妆加拿大
2017/05/15 全球购物
金融行业职业生涯规划范文
2014/01/17 职场文书
2014年机关植树节活动方案
2014/02/27 职场文书
交通文明倡议书
2014/05/16 职场文书
企业环保标语
2014/06/10 职场文书
企业口号大全
2014/06/12 职场文书
普通员工辞职信范文
2015/05/12 职场文书
2015高中教师个人工作总结
2015/07/21 职场文书
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis
html5+实现plus.io进行拍照和图片等获取
2022/06/01 HTML / CSS
不想升级Win11?教你彻底锁定老版Windows系统的方法(附下载地址)
2022/09/23 数码科技