Flex 弹性盒子布局(容器、项目)

一:简介

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

任何一个容器都可以指定为 Flex 布局。

采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称"项目"。

二:容器的属性

1.flex-direction  属性决定主轴的方向(即项目的排列方向)
    row(默认值):主轴为水平方向,起点在左端。
    row-reverse:主轴为水平方向,起点在右端。
    column:主轴为垂直方向,起点在上沿。
    column-reverse:主轴为垂直方向,起点在下沿。

2.flex-wrap  默认情况下,项目都排在一条线(又称"轴线")上。flex-wrap属性定义,如果一条轴线排不下,如何换行。
    nowrap(默认):不换行。
    wrap:换行,第一行在上方。
    wrap-reverse:换行,第一行在下方。

3.flex-flow  属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。

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

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

6.align-content  属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。
    flex-start:与交叉轴的起点对齐。
    flex-end:与交叉轴的终点对齐。
    center:与交叉轴的中点对齐。
    space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
    space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
    stretch(默认值):轴线占满整个交叉轴。

三:项目的属性

1.order  属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。
        (属性值为number类型,支持负数)

2.flex-grow  该属性来设置,当父元素的宽度大于所有子元素的宽度的和时(即父元素会有剩余空间)默认值是 0,    
            子元素如何分配父元素的剩余空间,属性值为number类型,可以设置为小数,但是一般不使用小数,不支持负数

3.flex-shrink  该属性来设置,当父元素的宽度小于所有子元素的宽度的和时(即子元素会超出父元素),默认值是 1,
                子元素如何缩小自己的宽度的,缩小空间,属性值为number类型,不支持负数

4.flex-basis  属性定义了项目占据的主轴(水平方向)空间(设置该元素的宽度), 默认auto
    如果同时设置了width,flex-basis会覆盖width的值
    flex-basis:auto / length / 0 
    默认auto:元素本来的大小
    length:px,%,rem...
    0:不占据空间

5.flex  符合属性,flex-grow,flex-shrink,flex-basis的缩写,后2个属性可选
    默认值:0 1 auto
    flex: auto / flex-grow /[flex-shrink,flex-basis]:可选的

    该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)
    flex: auto 代表 1 1 auto
      1:flex-grow的值为1,如果有剩余空间,会扩大
      1:flex-shrink的值为1,如果flex空间不足,会进行收缩
      auto:flex-basis和其他元素内容或者宽度保持一致
      其实就是不管多大多小的宽度,都会平均分配父元素

    flex:none 代表 0 0 auto
      0:flex-grow的值为0,如果有剩余空间,不会扩大
      0:flex-shrink的值为1,如果flex空间不足,不会进行收缩
      auto:flex-basis和其他元素内容或者宽度保持一致
      其实就是不管多大多小的宽度,都不会平均分配父元素

    flex:1 代表 1 1 0
      1:flex-grow的值为1,如果有剩余空间,会扩大
      1:flex-shrink的值为1,如果flex空间不足,会进行收缩
      0:内容不占据空间

6.align-self  定义交叉轴上的(垂直方向)对齐方式
    允许单个项目和其他项目不一样的对齐方式,可以覆盖align-items属性
    auto | flex-start | flex-end | center | baseline | stretch
    默认值为auto,表示继承父元素的 align-items属性
    除了auto,其他属性都与align-items属性完全一致

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
弹性盒子布局Flexbox)是一种用于在容器中进行灵活的、可响应的布局CSS3 模块。它提供了一种简单而强大的方式来对容器内的元素进行排列、对齐和分布。 Flexbox 的核心思想是将容器分为主轴(main axis)和交叉轴(cross axis)。主轴是元素排列的方向,可以是水平方向(row)或垂直方向(column),而交叉轴则是与主轴垂直的方向。 通过设置容器和子元素的属性,我们可以实现各种灵活的布局效果。以下是一些常用的属性: 1. 容器的属性: - `display: flex`:将容器设置为弹性容器。 - `flex-direction`:指定主轴的方向,可以是 `row`(默认值)、`column`、`row-reverse` 或 `column-reverse`。 - `justify-content`:指定子元素在主轴上的对齐方式,可以是 `flex-start`、`flex-end`、`center`、`space-between`、`space-around` 或 `space-evenly`。 - `align-items`:指定子元素在交叉轴上的对齐方式,可以是 `flex-start`、`flex-end`、`center`、`baseline` 或 `stretch`。 - `flex-wrap`:指定子元素是否换行,可以是 `nowrap`(默认值)、`wrap` 或 `wrap-reverse`。 2. 子元素的属性: - `flex-grow`:指定子元素在剩余空间中的放大比例,默认值为 0,即不放大。 - `flex-shrink`:指定子元素在空间不足时的缩小比例,默认值为 1,即等比例缩小。 - `flex-basis`:指定子元素在主轴上的初始尺寸,默认值为 `auto`。 - `flex`:`flex-grow`, `flex-shrink` 和 `flex-basis` 的缩写。 - `align-self`:覆盖容器的 `align-items` 属性,指定子元素在交叉轴上的对齐方式。 Flexbox 提供了一种简单而强大的布局方式,适用于各种场景,特别是在构建响应式布局时非常有用。希望这些信息对你有帮助!如果还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值