首页 前端知识 css3弹性盒子

css3弹性盒子

2025-03-03 13:03:40 前端知识 前端哥 729 609 我要收藏

目录

基本内容:

一、弹性容器和弹性子元素:

二、主轴(main axis)和交叉轴(cross axis)

三、弹性容器的属性:

       (一)项目排列方式

        (二)弹性容器换行方式

        (三)项目在主轴上的对齐方式

        (四)项目在交叉轴上对齐方式:

四、项目的属性:

        (一)项目的优先级

        (二)项目的增大比例

        (三)项目的缩减比例

        (四)flex-basis

        (五)单独对某个项目进行设置


基本内容:

        1.弹性容器和弹性子元素

        2.主轴(main axis)和交叉轴(cross axis)

        3.弹性容器的基本属性

        4.项目的基本属性

--------------------------------------------------我是一个分割线----------------------------------------------------------

一、弹性容器和弹性子元素:

弹性盒子:
    -弹性盒子由弹性容器(Flex container)和弹性子元素(Flex item)组成。

    -弹性容器通过设置 display 属性的值为 flex 或 inline-flex将其定义为弹性容器。
        它的所有子元素自动成为容器成员,称为flex项目,简称项目

    -弹性容器内包含了一个或多个弹性子元素。

注意: 弹性容器外及弹性子元素内是正常渲染的。弹性盒子只定义了弹性子元素如何在弹性容器内布局。

      弹性子元素通常在弹性盒子内一行显示。默认情况每个容器只有一行。

二、主轴(main axis)和交叉轴(cross axis)

        -容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。

        -项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。

主轴和交叉轴的方向并不是固定的,而是由项目排列方式决定

        1.当元素延行一行一行排时,主轴水平,交叉轴垂直

        2.当元素延列一列一列排时,主轴垂直,交叉轴水平

三、弹性容器的属性:

       (一)项目排列方式

flex-direction:    row(默认值):主轴为水平方向,起点在左端。
                        row-reverse:主轴为水平方向,起点在右端。
                        column:主轴为垂直方向,起点在上沿。
                        column-reverse:主轴为垂直方向,起点在下沿。

1.值为row时

2.值为row-reverse时

        

3.值为column时

        

4.值为column-reverse时

        (二)弹性容器换行方式

flex-wrap:默认情况下,项目都排在一条线(又称”轴线”)上。flex-wrap属性定义,如果一条轴线排不下,如何换行。
    值:(1)nowrap    默认,不换行,当没法压缩时会溢出
           (2)wrap        换行,第一行在上方,不会弹性压缩
           (3)wrap-reverse    换行,第一行在下方
 

 flex-flow: <flex-direction> <flex-wrap>;                一和二的简写

值为wrap时:会根据宽度自动换行,不会对元素进行压缩

        

        (三)项目在主轴上的对齐方式

justify-content:justify-content属性定义了项目在主轴上的对齐方式
        flex-start(默认值):左对齐
        flex-end:右对齐
        center: 居中
        space-between:两端对齐,项目之间的间隔都相等。
        space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。
        space-evenly:每个项目间隔相等,且间隔等于于盒子壁的间隔

flex-startflex-end
centerspace-between
space-evenlyspace-around

        (四)项目在交叉轴上对齐方式:

align-items:align-items属性定义项目在交叉轴上如何对齐。
        flex-start:交叉轴的起点对齐。
        flex-end:交叉轴的终点对齐。
        center:交叉轴的中点对齐。
        baseline: 项目的第一行文字的基线对齐。
        stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。
 

flex-startflex-end
space-betweensapce-evenly
space-around

stretch

四、项目的属性:

        (一)项目的优先级

order:order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。
        值:一个数
 

将2的order设置为-1时,其会优先进行排列

        (二)项目的增大比例

lex-grow:flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。
        值:一个数
    注意:如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。
 

        (三)项目的缩减比例

flex-shrink:定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。
        值:一个数
    注意:如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。
        负值对该属性无效。
 

        (四)flex-basis

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

它可以设为跟width或height属性一样的值(比如350px),则项目将占据固定空间。(即让其不再分配剩余空间)
 

        (五)单独对某个项目进行设置

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

    该属性可能取6个值,除了auto,其他都与align-items属性完全一致。

这里建议多练习一下,先掌握基本的知识点,后面的俺也布吉岛,我也才学,反正就是多练练就会了

转载请注明出处或者链接地址:https://www.qianduange.cn//article/22453.html
标签
评论
发布的文章

如何修改电脑mac地址?

2025-03-03 13:03:33

C 数组:深入解析与应用

2025-03-03 13:03:28

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!