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 3D立方体效果示例-transform也不过如此
Dec 05 HTML / CSS
利用CSS3的flexbox实现水平垂直居中与三列等高布局
Sep 12 HTML / CSS
css3中transition属性详解
Sep 02 HTML / CSS
CSS3 :default伪类选择器使用简介
Mar 15 HTML / CSS
html5本地存储_动力节点Java学院整理
Jul 12 HTML / CSS
HTML5: Web 标准最巨大的飞跃
Oct 17 HTML / CSS
html5实现多文件的上传示例代码
Feb 13 HTML / CSS
HTML5在线预览PDF的示例代码
Sep 14 HTML / CSS
HTML5中form如何关闭自动完成功能的方法
Jul 02 HTML / CSS
利用Storage Event实现页面间通信的示例代码
Jul 26 HTML / CSS
canvas 橡皮筋式线条绘图应用方法
Feb 13 HTML / CSS
前端使用canvas生成盲水印的加密解密的实现
Dec 16 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中通过ADODB库实现调用Access数据库之修正版本
2006/12/31 PHP
PHP教程 基本语法
2009/10/23 PHP
php 空格,换行,跳格使用说明
2009/12/18 PHP
php下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
php中选择什么接口(mysql、mysqli)访问mysql
2013/02/06 PHP
PHP jQuery表单,带验证具体实现方法
2014/02/15 PHP
PHP动态页生成静态页的3种常用方法
2014/11/13 PHP
php图片合成方法(多张图片合成一张)
2017/11/25 PHP
Laravel框架实现抢红包功能示例
2019/10/31 PHP
Jquery+WebService 校验账号是否已被注册的代码
2010/07/12 Javascript
JS判断数组中是否有重复值得三种实用方法
2013/08/16 Javascript
浅析Javascript使用include/require
2013/11/13 Javascript
关于JavaScript 原型链的一点个人理解
2016/07/31 Javascript
详解Angular的8个主要构造块
2017/06/20 Javascript
浅谈angular表单提交中ng-submit的默认使用方法
2018/09/30 Javascript
vue自定义指令实现仅支持输入数字和浮点型的示例
2019/10/30 Javascript
JS中FormData类实现文件上传
2020/03/27 Javascript
JavaScript随机数的组合问题案例分析
2020/05/16 Javascript
Node.js 深度调试方法解析
2020/07/28 Javascript
vue 项目@change多个参数传值多个事件的操作
2021/01/29 Vue.js
python中xrange用法分析
2015/04/15 Python
pycharm打开命令行或Terminal的方法
2019/01/16 Python
python pytest进阶之conftest.py详解
2019/06/27 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
python实现数据分析与建模
2019/07/11 Python
python2和python3哪个使用率高
2020/06/23 Python
纯HTML5+CSS3制作图片旋转
2016/01/12 HTML / CSS
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
联想新加坡官方网站:Lenovo Singapore
2017/10/24 全球购物
JD Sports马来西亚:英国领先的运动鞋和运动服饰零售商
2018/03/13 全球购物
三个Unix的命令面试题
2015/04/12 面试题
服装公司总经理岗位职责
2013/11/30 职场文书
应届行政管理专业个人自我评价
2013/12/28 职场文书
生日邀请函范文
2014/01/13 职场文书
赢在执行观后感
2015/06/16 职场文书
Java多线程并发FutureTask使用详解
2022/06/28 Java/Android