CSS3: Flex弹性盒子

flexbox,是一种一维的布局模型。它给 flexbox 的子元素之间提供了强大的空间分布对齐能力。

弹性盒子包括两部分: flex容器和flex元素

v2-8fcf18b901b8da87fe0d917c173082d6_b.jpg

flexbox的两根轴线:

  1. 主轴和交叉轴
  2. 方向
  3. 其实位置和终止位置

初始效果:

  1. 主轴水平从左向右。元素排列为一行 (flex-direction 属性的初始值是 row)。
  2. 元素从左边起始线开始(justify-content:flex-start)。元素从主轴的起始线开始。
  3. 默认不拉伸(flex-grow:0),但是会压缩(flex-shrink:1)不换行(flew-wrap:nowrap)。元素不会在主维度方向拉伸,但是可以缩小。
  4. 不设置高度时flex元素充满flex容器(align-items:stretch)。元素被拉伸来填充交叉轴大小。

v2-1b377a77e3eddac5728db3ca77608cbd_b.jpg

---------------------------------------------------------------------------------------

flex容器属性:

1、flex-direction设置flex容器主轴的方向,属性值详解如下:

row // (默认)默认方向

row-reverse //默认方向 首尾互换

column //垂直,从上到下

column-reverse //垂直 从下到上

v2-bd576f2ab6e7b4f046989d603b417709_b.jpg

2、flex-wrap 控制flex容器是单线还是多线,以及新线的堆叠方向,属性值详解如下:

nowrap //单行

wrap //多行

wrap-reverse // 新线上前排列

v2-e63bd36f99835a300bee29a05d0a561e_b.jpg


3、flex-flow: flex-direction flex-wrap;

4、justify-content 项目在主轴上的对齐方式,属性值详解如下:

flex-start //(默认) 主轴起始端(main-start)齐平

flex-end // 主轴末端(main-end)齐平

center //居中

space-between // 两端对齐,没两个flex元素之间的空隙相等

space-around // 每个项目两侧的距离相等

v2-2a4cfc62690989462ece57f90d5e1d4b_b.jpg

5、align-items 项目在交叉轴上的对齐方式,属性值详解如下:

flex-start // 交叉轴起始段(cross-start)齐平

flex-end // 交叉轴末端(cross-end)齐平

center // 居中对齐

baseline //flex元素的第一行文字为基准对齐

stretch //flex元素未设置高度时,高度充满flex容器高度

v2-00dfe2df3afdcab7eb97eff3a3c434e5_b.jpg

v2-a1c4b531e3ef265b655869d8de378ed1_b.jpg

6、align-content 多线的对齐方式,单线不起作用。属性值详解如下:

flex-start //所有flex子元素交叉轴起始段(cross-start)齐平

flex-end //所有flex子元素交叉轴末端(cross-end)齐平

center //所有flex子元素居中对齐

stretch //未设置高度时占满整个交叉轴。默认值

space-between //交叉轴(cross)两端对齐

space-around //每跟轴两侧空隙相等

v2-b7611af98d5fe6808473d922b2c5e436_b.jpg

flex元素属性

1、flex-basis: length; //定义该元素的main-size。


2、flex-grow: number; //拉伸比例,默认值为0

v2-e11660d3f68246b1038cca0f02d18a38_b.jpg

3、flex-shrink: number; //压缩比例,默认值为1


4、flex: flex-grow flex-shrink flex-basis //默认值 0 1 auto


5、align-self单个项目在cross轴上的对齐方式,属性值详解如下:

flex-start //cross-start齐平

flex-end //cross-end齐平

center //居中

baseline //第一行文字

stretch //为设置高度时 该元素高度为flex容器高度


6、order:number; //该项目排列的位置 值从小到大排列


        <!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>弹性盒子</title>
</head>
<style>
 .contain{
 display: flex;
 width: 600px;
 height: 300px;
 border: 1px solid black;
 flex-direction: row;/* 水平方向 */
 /* flex-direction: column-reverse; */
 /* 垂直方向 */
 /* flex-wrap: wrap; */
 /* 修改默认换行 */
 /* justify-content: center; */
 /* 主轴上的对齐方式 */
 /* align-items: center; */
 /* align-content: flex-start; */
    }
 .item{
 width: 100px;
 height: 100px;
 line-height: 100px;
 text-align: center;
 /* line-height: 200px; */
    }
 .item:first-child{
 background-color: #FF7F50;
 flex-grow: 1;
    }
 .item:nth-child(2){
 background-color: #E9967A;
 /* align-self: center; */
 flex-grow: 1;
    }
 .item:last-child{
 background-color: #FFD700;
 flex-grow: 1;
    }
</style>
<body>
 <!--flex容器-->
    <div class="contain">
 <!--flex元素-->
        <div class="item"></div>
        <div class="item"></div>
        <div class="item"></div>
    </div>
</body>
</html>
      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值