flex 弹性盒子

display:flex 和接下来我们介绍的这个 flex 是有区别的,前者是修改display实现弹性和模型的,而 flex 仅仅是弹性盒模型下 flex-grow、flex-shrink 和 flex-basis三个的缩写属性,用来定义和模型内部的子元素在浏览器重的展示形式。 下面我们主要讲这三个属性。

1. 官方定义

属性用于设置或检索弹性盒模型对象的子元素如何分配空间。
flex 属性是 flex-growflex-shrinkflex-basis 属性的简写属性。

2. 慕课解释

fl父元素设置成 dispaly:flex 之后子元素的空间分配通过 flex 设置,其特点为弹性,即内部分配空间如果按照比例分配则其不会随着父元尺寸变化而变化。

3. 语法

子元素

{
    flex: flex-grow flex-shrink flex-basis|auto|initial|inherit|none;
}

属性说明

参数名称 参数类型 解释
flex-grow number 其它子元素的比例关系默认为 0 ,存在剩余空间不扩大
flex-shrink number 默认为1空间不足时候缩小
flex-basis | ‘auto’ 设定一个长度或者自动填充

4. 兼容性

flex:

IE Edge Firefox Chrome Safari Opera ios android
63-74 84-85

flex-grow| flex-shrink|flex-basis:

IE Edge Firefox Chrome Safari Opera ios android
10+ 12+ 28+ 4+ 6.1+ 12.1+ 7+ 4.4

5.实例

  1. 给一个块级元素添加 flex 属性 ,让其子元素平均分配空间。
<div class="demo">
    <div class="item">1</div>
    <div class="item">2</div>
    <div class="item">3</div>
</div>
.demo{
    display:flex;
    width:200px;
    height:60x;
    line-height:60px;
    border: 1px solid #ccc;
    border-right: none;
}
div>.item{
    width:100px;
    border-right:1px solid #ccc;
    text-align: center;
    flex:1;
}

效果图

图片描述

块级元素平均分配空间
实例演示
预览 复制