0


前端的学习-CSS(弹性布局-flex)

一:什么是弹性布局-Flex

            flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。

             语法:
.box{
    display: flex;
}
.box{
    display: inline-flex;
}
           ** 注意,设为 Flex 布局以后,子元素的float、clear和vertical-align属性将失效。 **

            基本概念: 

            按照我自己的理解,横向代表主轴的方向,纵向代表交叉轴的方向,横向的方向由左到右为开始到结束,纵向则是由上到下。

            我将被设置弹性布局的盒子称作父元素,将里面的内容称为子元素。方便记忆。

            通常设置盒子页面都是按照标准流进行排列。块元素的话就是从上到下排列。如下图。 

            现在给父元素也就是绿色的盒子设置弹性布局。 子元素的盒子会自动按照主轴方向排列。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>弹性布局</title>
        <style type="text/css">
            .main-box {
                width: 800px;
                height: 300px;
                background-color: aquamarine;
                margin: 0 auto;
                /* 设置弹性盒子 */
                display: flex;
            }

            .main-box>div {
                width: 200px;
                height: 200px;
                border: 1px solid red;
                font-size: 20px;
                color: #000;
            }
        </style>
    </head>
    <body>
        <div class="main-box">
            <div>1</div>
            <div>2</div>
            <div>3</div>
        </div>
    </body>
</html>
            以下6个属性设置在容器上。

                    flex-direction:项目的排列方向

                    flex-wrap:项目如何换行

                    flex-flow: flex-direction 属性和 flex-wrap的简写方式。

                    justify-content:项目在主轴上的对齐方式

                    align-items:项目在交叉轴上如何对齐

                    align-content:多根轴线的对齐方式 
1: flex-direction:项目的排列方向
             flex-direction,默认排列为主轴方向,也就是水平方向。
box {
    flex-direction: row | row-reverse | column | column-reverse;
}
            row:默认方向,主轴的方向

            row-reverse:主轴方向,但元素会从主轴结束的方向开始排列,并且元素的顺序会反过来。

            column:交叉轴方向

            colmun-reverse:交叉轴方向,但元素会从交叉轴结束的方向开始排列,并且元素的顺序会反过来。。

flex-direction: row-reverse;
    **设置交叉轴方向 **
flex-direction: column;

    **设置交叉轴反向 ** 
flex-direction: column-reverse;

2:flex-wrap:项目如何换行
            首先弹性布局默认是不会换行,当子元素的宽度或者高度总和加起来大于父元素的宽度时,子元素会被压缩。如下。

    这时如果需要换行,则需要flex-warp属性来控制,flex-warp默认是 flex-warp: no-warp;

这时将其值为:flex-warp: warp;

flex-wrap: wrap;
 **   交叉轴方向换行 **

.main-box {
    width: 800px;
    height: 300px;
    background-color: aquamarine;
    margin: 0 auto;
    /* 设置弹性盒子 */
    display: flex;
    /* 设置交叉轴方向 */
    flex-direction: column;
    flex-wrap: wrap;
}
3:justify-content:项目在主轴上的对齐方式
.box {
    justify-content: flex-start | flex-end | center | space-between |
    space-around;
}
justify-content: flex-start;

justify-content: flex-end;

justify-content: space-between;

justify-content: space-around;

justify-content: space-evenly;

             space-around与space-evenly的区别是,space-evenly的间隙全是一样的,而,sapce-around的最左右两别的间隙和子元素之间的间隙是不一样的,space-beween的只有中间存在空隙。 
4: align-items:项目在交叉轴上如何对齐
.box {
    align-items: flex-start | flex-end | center | baseline | stretch;
}
align-items: flex-start;

align-items: flex-end;

align-items: center;

align-items: baseline;以第一行文字的基线作为对齐的基准。

align-items: baseline;

            如果子元素未设置高度,而设置了align-items: stretch; 则会占满整个父元素。
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>弹性布局</title>
        <style type="text/css">
            .main-box {
                width: 800px;
                height: 300px;
                background-color: aquamarine;
                margin: 0 auto;
                /* 设置弹性盒子 */
                display: flex;
                /* 设置交叉轴方向 */
                align-items: stretch;
            }

            .main-box>div {
                width: 100px;
                /* height: 300px; */
                border: 1px solid red;
                font-size: 20px;
                color: #000;
            }
        </style>
    </head>
    <body>
        <div class="main-box">
            <div class="box1">1</div>
            <div class="box2">2</div>
            <div class="box3">3</div>
            <div class="box4">4</div>
            <div class="box5">5</div>
        </div>
    </body>
</html>

5: align-content:多根轴线的对齐方式
            align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。
.box {
    align-content: flex-start | flex-end | center | space-between | spacearound | stretch;
}
align-content: flex-start;

align-content: flex-end;

align-content: space-around;

align-content: space-between;

align-content: space-evenly;

align-content: center;

align-content: stretch;

** 今天就先这样。。。。。。**

标签: 前端 css 学习

本文转载自: https://blog.csdn.net/m0_68823256/article/details/140878422
版权归原作者 银杏也要学习代码 所有, 如有侵权,请联系我们删除。

“前端的学习-CSS(弹性布局-flex)”的评论:

还没有评论