Flex布局

一、什么是Flex布局?

Flex(Flexible Box)  -----   弹性布局

基本概念:

容器(Flex Container)

元素项(Flex Item)

水平轴,横轴,主轴(main axis)

垂直轴,纵轴,交叉轴(cross axis)

Flex容器的属性

  1. flex-direction -----  容器内元素的排列方向
  2. flex-wrap  ----  容器内元素的换行行为
  3. flex-flow  -----  direction和wrap的复合属性
  4. justify-content ----  元素在横轴上的对齐方式
  5. align-items  -----  元素在纵轴上的对齐方式
  6. align-content  -----  多行元素的对齐方向

二、Flex容器的属性

2.1 flex-direction -----  容器内元素的排列方向

  • row(默认值)  : 主轴为水平方向,从左到右

 

  • row-reverse : 主轴为水平方向,从右到左

 

  • column : 主轴为垂直方向,从上到下

 

  • column-reverse: 主轴为垂直方向,从下到上

 

 

2.2 flex-wrap  ----  容器内元素的换行行为

2.3 flex-flow  -----  direction和wrap的复合属性

2.4 justify-content ----  元素在横轴上的对齐方式

  • flex-start(默认值):左对齐

 

  • flex-end:右对齐

 

  • center:居中对齐

 

  • space-between:两段对齐,item之间的间隔想相等

 

  • space-around:每个item 两侧的间隔相等

 

2.5 align-items  -----  元素在纵轴上的对齐方式

  • stretch(默认值) : 占满整个容器的高度

 

  • flex-start: 与纵轴起点对齐

 

  • flex-end: 与纵轴终点对齐

 

  • center: 与纵轴中间对齐

 

  • baseline : 与基线对齐

 

2.6 align-content  -----  多行元素的对齐方向

  • stretch(默认值) :占满整个容器的高度
  • flex-start : 与纵轴起点对齐
  • flex-end : 与纵轴终点对齐
  • center: 与纵轴中间对齐
  • space-between:与纵轴两端对齐,item之间的间隔平均分布
  • space-around: 每根轴线两侧的间隔相等
<!doctype html>
<html lang="zh-CN">
  <head>
  
    <title>flex布局</title>
    <style type="text/css">
        .container{
            width: 110px;
            height: 110px;
            margin: 0 auto;
            background-color:blueviolet;
            display: flex;
            /* display: inline-flex; */

            /* 垂直方向  从上到下*/
            /* flex-direction: column; */

            /* 垂直方向  从下到上 */
            /* flex-direction: column-reverse; */
            
            /* 水平方向 从右到左 */
            /* flex-direction: row-reverse; */

            /* 水平方向 从左到右 */
            /* flex-direction: row; */

            /* 水平轴 水平居中对齐 */
            /* justify-content: center; */

            /* 水平轴 两端对齐 */
            /* justify-content: space-between; */

            /* 水平轴 每个item 两侧的间隔相等 */
            /* justify-content: space-around; */

            /* 水平轴 左对齐 */
            /* justify-content: flex-start; */

            /* 水平轴 右对齐 */
            /* justify-content: flex-end; */


            /* 垂直轴 占满整个容器的高度 */
            /* align-items: stretch; */

            /* 垂直轴 与纵轴起点对齐 */
            /* align-items: flex-start; */

            /* 垂直轴 与纵轴终点对齐 */
            /* align-items:flex-end */

            /* 垂直轴 与基线对齐 */
            /* align-items: baseline; */

    



        }
        .container div {
            width: 20px;
            height: 20px;

        }
        .first{
            background-color: beige;
        }
        .second{
            background-color: aqua;
        }
        .third{
            background-color: beige;
        }
    </style>
    </head>


    <body>
            <div class="container">
                <div class="first">1</div>
                <div class="second">2</div>
                <div class="third">3</div>
            </div>


    </body>

</html>

三、元素项的属性

  1. order ----  排序规则,越小越靠前排列
  2. flex-grow  -----  放大(撑开)比例
  3. flex-shrink  ---  收缩比例
  4. flex-basis ---- 水平方向的大小
  5. flex  ----- grow、shrink、basi的复合属性
  6. align-self  ----   元素在纵轴上的对齐方式

3.1 order 排序规则,越小越靠前排列

默认为0

数值越小,排列越靠前

在元素项中加入order:1,order:2  不是在容器中添加

3.2  flex-grow  -----  放大(撑开)比例

  • 0(默认值):如果存在剩余空间,不放大
  • 1:如果存在剩余空间,均分剩余空间
  • 既有0,也有1:如果存在剩余空间,0的不撑大,1撑大
  • >=1:如果存在剩余空间,按比例分配剩余空间

3.3 flex-shrink  ---  收缩比例

1(默认):如果空间不足,该item 将缩小

3.4 flex-basis ---- 水平方向的大小

如果所有子元素的基准值之和大于剩余空间,则会根据每项设置的基准值,按比率伸缩剩余空间

  • auto(默认值):无特定宽度值,取决于其他属性值
  • <length>:用长度值来定义宽度,不允许负值
  • <percentage>:用百分比来定义宽度,不允许负值
  • content:基于内容自动计算宽度

3.5 flex  ----- grow、shrink、basi的复合属性

  • 1:则其计算值为 1  10%
  • auto :则其计算值为1  1 auto
  • none : 则其计算值为0 0 auto
  • 0 auto : 则其计算值为 0 1 auto

3.6 align-self  ----   元素在纵轴上的对齐方式

  • auto(默认值):父元素的'align-items'值,若无,则为'stretch'
  • stretch: 占满整个容器的高度
  • flex-start : 与纵轴起点对齐
  • flex-end : 与纵轴终点对齐
  • center: 与纵轴中间对齐
  • baseline: 与基线对齐
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值