flex布局初步学习

来源:互联网 发布:网络冲洗照片靠谱吗 编辑:程序博客网 时间:2024/06/15 00:39

flex学习

这里写图片描述

容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。
项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。

一.容器

以下6个属性是应用在容器上的

  1. flex-direction (设置主轴的方向)
  2. flex-wrap (主轴上排满了是否换行相关)
  3. flex-flow (是flex-derection和flex-wrap的简写形式)
  4. justify-content (主轴上的对齐方式)
  5. align-items (交叉轴即纵轴上的对齐方式)
  6. align-content (多根轴线上的对齐方式,一根不起作用)

1.flex-direction (设置主轴的方向)

.box {  flex-direction: row | row-reverse | column | column-reverse;}* row : 水平,从左到右* row-reverse : 水平,从右到左* column : 垂直,从上到下* column-reverse : 垂直,从下到上

2.flex-wrap (主轴上排满了是否换行相关)

.box{  flex-wrap: nowrap | wrap | wrap-reverse;}* nowrap : 不换行* wrap : 换行* wrap-reverse : 换行,但是第一行会被排到新一行的下方

3.flex-flow (是flex-derection和flex-wrap的简写形式)

.box {  flex-flow: <flex-direction> || <flex-wrap>;}* 默认值为row nowrap

4.justify-content (主轴上的对齐方式)

.box {  justify-content: flex-start | flex-end | center | space-between | space-around;}* flex-start : 左对齐* flex-end : 右对齐* center : 中间对齐* space-between: 两端对齐,项目之间的间隔都相等

5.align-items (交叉轴即纵轴上的对齐方式)

.box {  align-items: flex-start | flex-end | center | baseline | stretch;}* flex-start : 起点对齐* flex-end: 结束点对齐* center: 中间对齐* baseline:项目的第一行文字的基线对齐* stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度

6.align-content (多根 轴线 的对齐方式,一根不起作用)

.box {  align-content: flex-start | flex-end | center | space-between | space-around | stretch;}* flex-start:起点对齐* flex-end : 结束点对齐* center: 中间对齐* space-between:两端对齐* space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。* stretch : 轴线占满整个交叉轴

二.项目

以下6个属性是应用在项目上的,即容器中的每一项

  1. order (定义项目的排列顺序,数值越小,越靠前)
  2. flex-grow (定义项目的放大比例,默认0,不放大)
  3. flex-shrink (定义项目缩小比例,默认1,即空间不足,自动缩小)
  4. flex-basis (定义所有项目占据的主轴的空间,默认auto,即项目本身的大小)
  5. flex (是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto)
  6. align-self (允许单个项目有与其他项目不同的对其方式,默认为auto,继承父级元素)

1. order (定义项目的排列顺序,数值越小,越靠前)

.item {  order: <integer>;}

2. flex-grow (定义项目的放大比例,默认0,不放大)

.item {  flex-grow: <number>; /* default 0 */}* 如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。

3. flex-shrink (定义项目缩小比例,默认1,即空间不足,自动缩小)

.item {  flex-shrink: <number>; /* default 1 */}* 如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。

4. flex-basis (定义所有项目占据的主轴的空间,默认auto,即项目本身的大小)

.item {  flex-basis: <length> | auto; /* default auto */}* flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。* 它可以设为跟width或height属性一样的值(比如350px),则项目将占据固定空间。

5. flex (是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto)

.item {  flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]}* 该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)。* 建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值。

6. align-self (允许单个项目有与其他项目不同的对其方式,默认为auto,继承父级元素)

.item {  align-self: auto | flex-start | flex-end | center | baseline | stretch;}* align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。
原创粉丝点击