Web的Flex弹性盒模型

flex 的核心的概念就是容器。容器包括外层的父容器和内层的子容器,轴包括主轴交叉轴,可以说 flex 布局的全部特性都构建在这两个概念上。flex 布局涉及到 12 个 CSS 属性(不含 display: flex),其中父容器、子容器各 6 个。不过常用的属性只有 4 个,父容器、子容器各 2 个。

Web的Flex弹性盒模型_第1张图片
flex-container.png

容器

容器具有以下的特点:父容器可以统一设置子容器的排列方式,子容器也可以单独设置自身的排列方式,如果两者同时设置,以子容器的设置为准。

有下面六种属性可以设置在容器上,它们分别是:

flex-direction:row | row-reverse | column | column-reverse;
//决定主轴的方向(即项目的排列方向)
flex-wrap:nowrap | wrap | wrap-reverse;
//指定flex元素单行显示还是多行显示。
flex-flow:|;
//flex-direction 和 flex-wrap 的简写形式
justify-content: flex-start | flex-end | center | space-between | space-around;
/* 均匀排列每个元素(主轴)
space-between首个元素放置于起点,末尾元素放置于终点 .  .  .  .
space-around 每个元素周围分配相同的空间 */          . . . .  
align-items: stretch | flex-start | flex-end | center | baseline ;
//属性定义项目在交叉轴上如何对齐。
align-content:stretch | flex-start | flex-end | center | space-between|space-around ;
//属性定义弹性容器的侧轴方向上有额外空间时,如何排布每一行。当弹性容器只有一行时无作用。

Flex 项目属性:

有六种属性可运用在 item 项目上:

order:;
//定义项目在容器中的排列顺序,数值越小,排列越靠前,默认值为 0
flex-basis:;
//分配多余空间之前,项目占据的主轴空间(main size)。默认值为auto,即项目的本来大小。
flex-grow:;
//定义项目的放大比例
flex-shrink:;
// 定义了项目的缩小比例;
flex:none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ];
//flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。
align-self: auto | flex-start | flex-end | center | baseline | stretch;
//align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。
//默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。

当时设置 flex 布局之后,子元素的 float、clear、vertical-align 的属性将会失效。

https://juejin.im/post/58e3a5a0a0bb9f0069fc16bb

你可能感兴趣的:(Web的Flex弹性盒模型)