tip: 1)这些属性写在子元素中,作用于子元素(父元素中应设置display:flex)

  2)作用是子元素如何分配父元素的空间

  3)

    flex-grow 是扩展比率,当子元素宽度总和小于父元素宽度时起作用,会按比例分配父元素剩余空间(按比例自适应)

     flex-shrink 是收缩比率,当子元素宽度总和大于父元素宽度时起作用,会按比例收缩空间(按比例自适应)
            flex-basis 伸缩基准值,子元素本来宽度

举例:flex:1 1 300px;

<template>
<div class="test">
<div class="top">头部</div>
<div class="main">中间</div>
<div class="bottom">底部</div>
</div>
</template>
<style lang="scss">
.test{
display: flex;
display: -webkit-flex;
justify-content: center;
align-items: center;
border: 1px solid red;
box-sizing: border-box;
 overflow: hidden;
width: 100%;
height: 500px;
.top{
border: 1px solid blue;
// 子元素可以随父元素自由伸缩
-webkit-flex: 1 1 300px;
-ms-flex: 1 1 300px;
flex: 1 1 300px;
// width: 200px;
height: 200px;
}
.main{
border: 1px solid green;
// 子元素可以随父元素自由伸缩
flex: 1 1 300px;
// width: 200px;
height: 200px;
}
.bottom{
border: 1px solid black;
// 子元素可以随父元素自由伸缩
flex: 1 1 300px;
// width: 200px;
height: 200px;
}
}
</style>

不管子元素宽度总和(300px+300px+300px)是否大于或小于父元素宽度,都会都会自适应父元素宽度

flex: 1 0 300px;扩张起作用;当父元素宽度大于900px(300px+300px+300px)时起作用,反之,不起作用

<template>
<div class="test">
<div class="top">头部</div>
<div class="main">中间</div>
<div class="bottom">底部</div>
</div>
</template>
<style lang="scss">
.test{
display: flex;
display: -webkit-flex;
justify-content: center;
align-items: center;
border: 1px solid red;
box-sizing: border-box;
overflow: hidden;
width: 100%;
height: 500px;
.top{
border: 1px solid blue;
-webkit-flex: 1 0 300px;
-ms-flex: 1 0 300px;
flex: 1 0 300px;
// width: 200px;
height: 200px;
}
.main{
border: 1px solid green;
flex: 1 0 300px;
// width: 200px;
height: 200px;
}
.bottom{
border: 1px solid black;
flex: 1 0 300px;
// width: 200px;
height: 200px;
}
}
</style>

注意看中间框的大小变化,还有右下角样式变化当父元素小于900px时,子元素宽度一直保持300px

flex:0 1 300px; 收缩起作用;注意看父元素小于900px时,子元素宽度变化

<template>
<div class="test">
<div class="top">头部</div>
<div class="main">中间</div>
<div class="bottom">底部</div>
</div>
</template>
<style lang="scss">
.test{
display: flex;
display: -webkit-flex;
justify-content: center;
align-items: center;
border: 1px solid red;
box-sizing: border-box;
overflow: hidden;
width: 100%;
height: 500px;
.top{
border: 1px solid blue;
-webkit-flex: 0 1 300px;
-ms-flex: 0 1 300px;
flex: 0 1 300px;
// width: 200px;
height: 200px;
}
.main{
border: 1px solid green;
flex: 0 1 300px;
// width: 200px;
height: 200px;
}
.bottom{
border: 1px solid black;
flex: 0 1 300px;
// width: 200px;
height: 200px;
}
}
</style>

flex: 0 0 auto; width: 300px;不管子元素总和是否大于父元素,都不会随父元素大小而变化

<template>
<div class="test">
<div class="top">头部</div>
<div class="main">中间</div>
<div class="bottom">底部</div>
</div>
</template>
<style lang="scss">
.test{
display: flex;
display: -webkit-flex;
justify-content: center;
align-items: center;
border: 1px solid red;
box-sizing: border-box;
overflow: hidden;
width: 100%;
height: 500px;
.top{
border: 1px solid blue;
-webkit-flex: 0 0 auto;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
width: 300px;
height: 200px;
}
.main{
border: 1px solid green;
flex: 0 0 auto;
width: 300px;
height: 200px;
}
.bottom{
border: 1px solid black;
flex: 0 0 auto;
width: 300px;
height: 200px;
}
}
</style>

flex主要是父元素对子元素的布局用的,要结合display: flex; justify-content: center; align-items: center;使用。

如果对display: flex; justify-content: center; align-items: center不了解的可以查看我的另一片文章

flex上下左右居中

flex属性flex-grow、flex-shrink、flex-basis的更多相关文章

  1. CSS 弹性盒子 flex的三个属性:grow、shrink、basis

    flex-grow 首先介绍flex-grow属性,flex-grow会在容器太大时(图片A.B的宽度和 < 父容器宽度)对元素作出调整. 如果图片A的flex-grow属性的值为 1,图片B的 ...

  2. H5、CSS3属性的支持性以及flex

    一.项目中用到一个flex属性,但是应用了flex的父容器只设置了width,没有设置height,此时每一个应用了上面提到的属性的样式的div都重叠在了一起,在IE10,IE11出问题,IE9没有问 ...

  3. flex属性

    一.flex属性的归纳 flex-direction flex-wrap flex-flow justify-content align-items align-content 1.1 flex-di ...

  4. CSS3-flex弹性布局之flex属性

    flex属性 前置

  5. CSS布局学习(二) - flex属性

    flex属性 定义 flex布局包括最外层的容器和内部的元素,flex属性是内部元素属性.flex属性是flex-grow, flex-shrink, flex-basis三个属性的简写 flex-g ...

  6. flex属性的学习

    1.需要记住的属性和值. ------------------------------------------------------------- 方向横和纵 flex-direction: row ...

  7. flexbox子盒子flex属性

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. css属性之flex属性

    flex属性 规定了弹性元素如何伸长或缩短以适应flex容器中的可用空间.是一个简写属性,可以同时设置flex-grow, flex-shrink, flex-basis三个子属性. /* Basic ...

  9. css3 flex属性flex-grow、flex-shrink、flex-basis学习笔记

    最近在研究css3的flex.遇到的flex:1;这一块,很是很纠结,flex-grow.flex-shrink.flex-basis始终搞不清,最经搜集了大量的介绍,应该能算是明白了.网上大部分解释 ...

  10. display的flex属性使用详解

    flex的兼容性在pc端还算阔以,但是在移动端,那就呵呵了.今天我们只是学习学习,忽略一些不重要的东西. 首先flex的使用需要有一个父容器,父容器中有几个items. 父容器:container 属 ...

随机推荐

  1. linux-centOS环境下安装jdk8

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/lx_Frolf/article/det ...

  2. centos6.2 shutdown now关机进入单用户模式

    在centos5.5时当我们输入 shutdown now 系统会进入关机状态.而centos6.2时并非如此,其他版本不清楚,而进入了单用户模式.(进入系统后想维护可做此操作.)会出现如下提示:(注 ...

  3. 对GridFS数据进行分片

    On this page files 集合 chunks 集合 在对 GridFS 存储进行分片时,需要注意以下的情况: files 集合 大多数情况下不需要对 files 集合进行分片,这个集合通常 ...

  4. C# String相关

    1.去掉字符串中的所有的空 string s = " select * from \r\n where a =b "; s = Regex.Replace(s, @"\s ...

  5. 搭建 webpack、react 开发环境(二)

    配置处理样式文件   到目前为止,整个工程的配置已经差不多了,对于 React 更多相关的配置将在后面继续介绍,现在我们先来对目前的工程进行优化. 前面我们学习了搭建 webpack.react 开发 ...

  6. 53.Coin Change(找硬币)

    Level:   Medium 题目描述: You are given coins of different denominations and a total amount of money amo ...

  7. java改动后运行无变化

    缓存没有及时清理,重新清理打包后运行正常

  8. 启动数据库报:ORA-03113

    1启动数据库报:ORA-03113 2.查看oracle运行日志 tail  -50 //home/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.l ...

  9. React全栈-社交网络程序 提交表单数据

    1. 给每个input 表格添加change 事件 当input  变化时触发 <div className="form-group"> <input type= ...

  10. 服务器中卸载JDK