【CSS】Flex布局

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30604453/article/details/80727813

Flex布局有两个概念,容器(父元素)与项目(子元素)

如下,ul就是容器/父元素,li就是项目/子元素。要使用flex布局,最重要一点,要先将容器的display属性置为flex。当父元素是行内元素时,则用inline-flex

<ul>
 <li>1</li>
 <li>2</li>
 <li>3</li>
</ul>

一、容器有两大轴,六大属性

两大轴:主轴,交叉轴(类似于坐标轴x轴和y轴)

六大属性:

flex-direction : row | row-reverse | column | column-reverse;

flex-direction用于定义容器的主轴的方向,分别是 行 | 行反序 | 列 | 列反序

flex-wrap:nowrap | wrap | wrap-reverse;

默认情况下,项目都排在一根轴线上,flex-wrap用于定义当一条轴线排不下所有项目的时候,如何换行,分别是不换行/换行,第一行在上方/换行,第一行在下方

flex-flow : <flex-direction> || <flex-wrap>

flex-flow 分别是flex-direction和flex-wrap两个属性的简写,默认值为 row nowrap

justify-content: flex-start | flex-end | center | space-between | space-around;

justify-content用于定义了项目在主轴上的对齐方式。分别是左对齐、右对齐、居中、两端对齐、每个项目间隔相等。

align-items: flex-start | flex-end | center | baseline | stretch;

align-items用于定义项目在交叉轴上如何对齐。分别是交叉轴的起点对齐、终点对齐、中点对齐、项目的第一行文字的基线对齐、项目高度撑满容器高度

align-content: flex-start | flex-end | center | space-between | space-around | stretch;

align-content用于定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

二、项目有两大空间,六大属性

两大空间:主轴空间,交叉轴空间

六大属性:

 order: <integer>;

order用于定义项目的排列顺序。数值越小,排列越靠前,默认为0。

 flex-grow: <number>;

flex-grow用于定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。

flex-shrink: <number>;

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

flex-basis: <length> | auto;

flex-basis用于定义了项目占据的固定空间,如350px。它的默认值为auto,即项目的本来大小。

flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]

flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)。

align-self: auto | flex-start | flex-end | center | baseline | stretch;

align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto。

总结:容器和项目的六大属性,存在复合属性。容器的属性可简化为flex-flow、justify-content、align-items、align-content

项目的属性可简化为order、flex、align-self

只要重点记住上面的七个属性的使用方法即可。

猜你喜欢

转载自blog.csdn.net/qq_30604453/article/details/80727813