弹性盒子布局

弹性盒子布局
一、什么是弹性盒子布局

什么是弹性盒子布局:

 1、弹性盒子是CSS3的一种新布局模式

  2、代替浮动使布局更加简便

  3、对齐方式包含了水平方向和垂直方向;

  4、弹性项目可以通过css重新排序

基本概念:

 创建Flex容器(flex container) ——display: flex;

 

 

二、弹性布局的基础属性

HTML:

 

<div id="container">
        <div class="item">
            <h3>item 1</h3>
        </div>
        <div class="item">
            <h3>item 2</h3>
        </div>
        <div class="item">
            <h3>item 3</h3>
        </div>
        <div class="item">
            <h3>item 1</h3>
        </div>
        <div class="item">
            <h3>item 2</h3>
        </div>
        <div class="item">
            <h3>item 3</h3>
        </div>
        <div class="item">
            <h3>item 1</h3>
        </div>
        <div class="item">
            <h3>item 2</h3>
        </div>
        <div class="item">
            <h3>item 3</h3>
        </div>
        <div class="item">
            <h3>item 1</h3>
        </div>
        <div class="item">
            <h3>item 2</h3>
        </div>
        <div class="item">
            <h3>item 3</h3>
        </div>
        <div class="item">
            <h3>item 1</h3>
        </div>
        <div class="item">
            <h3>item 2</h3>
        </div>
        <div class="item">
            <h3>item 3</h3>
        </div>
        <div class="item">
            <h3>item 1</h3>
        </div>
        <div class="item">
            <h3>item 2</h3>
        </div>
        <div class="item">
            <h3>item 3</h3>
        </div>
        <div class="item">
            <h3>item 1</h3>
        </div>
        <div class="item">
            <h3>item 2</h3>
        </div>
        <div class="item">
            <h3>item 3</h3>
        </div>
        <div class="item">
            <h3>item 1</h3>
        </div>
        <div class="item">
            <h3>item 2</h3>
        </div>
        <div class="item">
            <h3>item 3</h3>
        </div>
        <div class="item">
            <h3>item 1</h3>
        </div>
        <div class="item">
            <h3>item 2</h3>
        </div>
        <div class="item">
            <h3>item 3</h3>
        </div>
        <div class="item">
            <h3>item 1</h3>
        </div>
        <div class="item">
            <h3>item 2</h3>
        </div>
        <div class="item">
            <h3>item 3</h3>
        </div>
        <div class="item">
            <h3>item 1</h3>
        </div>
        <div class="item">
            <h3>item 2</h3>
        </div>
        <div class="item">
            <h3>item 3</h3>
        </div>
    </div>

 

 

 

 1.flex-direction

#container {
            display: flex;
            /* 默认值:row 横向进行排列 左 */
            flex-direction: row;
            /* 纵向进行排列 */
            /* flex-direction: column; */
            /* 反向排列 右 */
            /* flex-direction: row-reverse; */
            flex-wrap: wrap;
        }

2.flex:; (占比)

flex: 2;

3.flex-wrap: wrap;(自动换行)

flex-wrap: wrap;

4.结合:flex-flow: row wrap;(纵向排列)

flex-flow: row wrap;

三、弹性布局的对齐和排序

1、在主轴上的对齐方式

HTML:

 <div id="container">
        <div class="item item-1">
            <h3>Item 1</h3>
        </div>
        <div class="item item-2">
            <h3>Item 2</h3>
        </div>
        <div class="item item-3">
            <h3>Item 3</h3>
        </div>
    </div>

CSS:

/* 在主轴上的对齐方式 */
            /* 左对齐 */
            /* justify-content: flex-start; */
            /* 右对齐 */
            /* justify-content: flex-end; */
            /* 居中对齐 */
            /* justify-content: center; */
            /* 间隔相等 */
            /* justify-content: space-around; */
            /* 项目与项目之间的间隔相等 */
            /* justify-content: space-between; */
            /* 均匀排列 */
            justify-content: space-evenly;

2.项目交叉轴的对齐方式(需要设置高度)

 height: 600px;
            background: #555;
            /* 项目交叉轴的对齐方式(需要设置高度) */
            /* 交叉轴起点对齐 */
            /* align-items: flex-start; */
            /* 交叉轴终点对齐 */
            /* align-items: flex-end; */
            /* 交叉轴居中对齐 */
            /* align-items: center; */
            align-items: baseline;

3.轴线对齐

/* 所有项目起点对齐 */
            /* align-content: flex-start; */
            /* 所有项目终点对其 */
            /* align-content: flex-end; */
            /* 所有项目居中对其 */
            /* align-content: center; */
            /* 两根轴线之间间隔相等 */
            /* align-content: space-around; */
            /* 按照交叉轴的两端对齐 轴线之间的间隔进行平分 */
            /* align-content: space-between; */
            /* 默认值 */
            align-content: stretch;

4.项目单个对齐:

HTML:

<div id="container">
        <div class="item item-1">
            <h3>Item 1</h3>
        </div>
        <div class="item item-2">
            <h3>Item 2</h3>
        </div>
        <div class="item item-3">
            <h3>Item 3</h3>
        </div>

    </div>

 

CSS:

/* 项目单个对齐 */
        .item-2 {
            align-self: flex-end;
            /* align-items: auto; (默认值) */
            /* align-items: flex-start; */
            /* align-items: stretch; */
            /* align-items: center; */

        }

5.排序:

CSS:

 /* 排序 */
        .item-1 {
            order: 3;
        }

        /* 项目单个对齐 */
        .item-2 {
            align-self: flex-end;
            order: 2;
        }

        .item-3 {
            order: 1;
        }

 

posted @ 2022-03-24 16:03  今天穿秋裤了吗  阅读(386)  评论(0)    收藏  举报