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 渐变(Gradients)之CSS3 线性渐变
Jul 08 HTML / CSS
CSS3 clip-path 用法介绍详解
Mar 01 HTML / CSS
CSS3 please 跨浏览器的CSS3产生器
Mar 14 HTML / CSS
CSS3中background-clip和background-origin的区别示例介绍
Mar 10 HTML / CSS
CSS3中线性颜色渐变的一些实现方法
Jul 14 HTML / CSS
详解CSS3中Media Queries的相关使用
Jul 17 HTML / CSS
CSS3中伪元素::before和::after的用法示例
Sep 18 HTML / CSS
一篇文章带你学习CSS3图片边框
Nov 04 HTML / CSS
HTML5无刷新改变当前url的代码
Mar 15 HTML / CSS
HTML5 input新增type属性color颜色拾取器的实例代码
Aug 27 HTML / CSS
Html5页面上如何禁止手机虚拟键盘弹出
Mar 19 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
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
2010/03/27 PHP
php生成xml时添加CDATA标签的方法
2014/10/17 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
thinkphp jquery实现图片上传和预览效果
2020/07/22 PHP
js 处理URL实用技巧
2010/11/23 Javascript
JS实现仿google、百度搜索框输入信息智能提示的实现方法
2015/04/20 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
干货分享:让你分分钟学会javascript闭包
2015/12/25 Javascript
JS简单获取客户端IP地址的方法【调用搜狐接口】
2016/09/05 Javascript
基于JavaScript实现Tab选项卡切换效果
2016/11/24 Javascript
详解Nodejs的timers模块
2016/12/22 NodeJs
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
Angular.js中数组操作的方法教程
2017/07/31 Javascript
如何理解Vue的render函数的具体用法
2017/08/30 Javascript
Vue2.0学习之详解Vue 组件及父子组件通信
2017/12/12 Javascript
create-react-app修改为多页面支持的方法
2018/05/17 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
2019/08/09 Javascript
jsonp格式前端发送和后台接受写法的代码详解
2019/11/07 Javascript
[02:09:59]火猫TV国士无双dota2 6.82版本详解(下)
2014/09/29 DOTA
用Python脚本生成Android SALT扰码的方法
2013/09/18 Python
django解决订单并发问题【推荐】
2019/07/31 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
Tensorflow实现将标签变为one-hot形式
2020/05/22 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
Foot Locker意大利官网:全球领先的运动鞋和服装零售商
2017/05/30 全球购物
Lookfantastic瑞典:英国知名美妆购物网站
2018/04/06 全球购物
护士辞职信模板
2014/01/20 职场文书
网络工程师职业规划
2014/02/10 职场文书
计算机维护专业推荐信
2014/02/27 职场文书
优秀党支部书记事迹材料
2014/05/29 职场文书
2015年学校图书室工作总结
2015/05/19 职场文书
公务员岗前培训心得体会
2016/01/08 职场文书
委托书范本格式
2019/04/18 职场文书
Python中for后接else的语法使用
2021/05/18 Python
win10怎么设置右下角图标不折叠?Win10设置右下角图标不折叠的方法
2022/07/15 数码科技