Flex布局

在讲Flex布局之前,先告诉大家几种常用的布局。

在PC端常用的布局有三种布局:流式布局,浮动布局,以及层布局。

但在移动端最常见的布局就是flex布局。

那么什么是flex布局呢?

flex布局就是css中提出的一种布局方案。

flex布局中有几个概念:

   (1)容器:如果给一个盒子添加了一个display:flex; 那么这个盒子就是一个容器。

       

 <!-- 容器 -->
    <div class="box">
</div>


    (2)项目:容器中的直接子元素就是项目    项目默认都是在主轴上进行排列的

       <div class="box">
        <!-- 项目1 -->
        <div class="son1"></div>
        </div>


    (3)主轴:默认情况下,项目是按照水平方向从左到右进行排列,这个排列方向就是主轴的方式
    (4)交叉轴:和主轴垂直的那个轴就是交叉轴

了解完这几个概念之后,我们就要来学习一下这些概念的属性。

容器:

对于容器来叔,它有6个属性,下面是对六个属性的说明:

 flex-direction: direction本意是方向的意思  作用:用来设置主轴的方向
        row:默认值  水平面右  默认情况下,如果你不设置主轴的方向,那么默认就是水平向右的
        row-reverse   reverse本意是反转的意思    水平向左  
        column    column本意是列的意思   让主轴垂直向下
        column-reverse   让主轴垂直向上  
        注意:项目是从主轴的起点开始排列。

flex-wrap:
        如果说容器的宽度比较小,项目的总宽度大于容器的宽度,此时项目在容器中会进行压缩,默认是不换行的。
        如果想你让它换行,通过flex-wrap属性来设置。
        nowrap:不换行   默认值
        wrap : 换行 

flex-flow:不是一个新的属性,是上面两个属性的复合属性
        flex-flow是flex-direction属性和flex-wrap属性的简写形式
        如:row nowrap   表示:主轴的水平向右的   不换行

justify-content:用来处理主轴上的富余空间的
        flex-start:表示项目在主轴的开始点排列,富余空间在主轴的结束位置
        flex-end:表示项目在主轴的结束点排列,富余空间在主轴的开始位置
        center:  表示项目在主轴的中间位置,富余空间在主轴的两侧
        space-between: 表示富余空间在项目和项目之间
        space-around:around表示环绕的意思   表示富余空间环绕项目
        注意:什么时候使用justify-content,只有有富余空间时才会使用

align-items: 理解1:项目在交叉轴上的摆放位置  理解2:处理项目在交叉轴的富余空间
        flex-start:项目在交叉轴的起来开始排列,富余空间在后面
        flex-end::项目在交叉轴的起来结束位置排列,富余空间在前面
        center:  项目在交叉轴的起来中间位置排列,富余空间在两侧


align-content:  多行项目,形成多根主轴,此属性是用来设置多根主轴的位置关系
        使用前提:多行项目                                                                                                                              flex-start: 两根主轴都从开始位置开始排列
        flex-end : 两根主轴都从结束位置开始排列  
        center:两根主轴从中间位置开始排列

接下来介绍一些项目的相关属性:

order:设置单个项目在主轴的排列顺序   order的默认值是0
        如果数字越小,越靠近主轴的起始点


flex-grow: grow表示生长因子  属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。
        如果说有富余空间,你想让哪个项目生长。就可以设置flex-grow。
        把富余空间分成了三份,每个项目占一份
        .son1{ flex-grow:1; }
        .son2{ flex-grow:1; }
        .son3{ flex-grow:1; }

        把富余空间分成了6分,第一个占1份,第二个占2份,第三个占3份
        .son1{ flex-grow:1; }
        .son2{ flex-grow:2; }
        .son3{ flex-grow:3; }

   

    flex-shrink:属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。

.item {
  flex-shrink: <number>; /* default 1 */
}

    flex-basis:属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。


.item {
  flex-basis: <length> | auto; /* default auto */
}

    flex:flex-growflex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。

.item {
  flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
}

    align-self:属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch


.item {
  align-self: auto | flex-start | flex-end | center | baseline | stretch;
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flex布局(也称为弹性布局)是种主流的CSS布局方式,它可以方便地实现页面元素的自适应和排列。Flex布局通过定义容器和子元素的属性来实现灵活的布局效果。 在Flex布局中,有两个重要的概念:容器和子元素。容器是指应用Flex布局的父元素,而子元素则是容器内部的直接子元素。 以下是Flex布局的一些主要特点和属性: 1. 容器属性: - display: flex;:将容器设置为Flex布局。 - flex-direction:指定主轴的方向,可以是row(水平方向)、column(垂直方向)、row-reverse(水平反向)或column-reverse(垂直反向)。 - justify-content:定义了子元素在主轴上的对齐方式,可以是flex-start(起始对齐)、flex-end(末尾对齐)、center(居中对齐)、space-between(两端对齐,项目之间间隔相等)或space-around(每个项目两侧的间隔相等)。 - align-items:定义了子元素在交叉轴上的对齐方式,可以是flex-start(起始对齐)、flex-end(末尾对齐)、center(居中对齐)、baseline(基线对齐)或stretch(拉伸对齐)。 - flex-wrap:定义了子元素是否换行,可以是nowrap(不换行)、wrap(换行)或wrap-reverse(反向换行)。 2. 子元素属性: - flex:指定子元素的伸缩比例,用于控制子元素在容器中的占比。 - align-self:定义了单个子元素在交叉轴上的对齐方式,可以覆盖容器的align-items属性。 以上是Flex布局的一些基本概念和属性,通过灵活地使用这些属性,可以实现各种不同的布局效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值