少小白学前端——css篇(flex布局)

一、基本概念

flex布局,也就是常说的弹性布局,具有很强的灵活性,是一种常用布局方式,基本语法:

.box {
	display: flex;
	display: -webkit-flex; /* Safari */
}

其中,采用该样式的元素被称为容器(container),而它的子元素则称为item。
容器上默认有两根轴线:水平的主轴(main axis)和垂直的交叉轴(cross axis),子元素item则根据轴线排列。
注意:使用flex布局时,子元素的float、clear和vertical-align属性将失效。

二、容器属性

容器有六个属性:
1.flex-direction:规定item的排列方向,其值有:

  • row(默认值):主轴为水平方向,起点在左端。
  • row-reverse:主轴为水平方向,起点在右端。
  • column:主轴为垂直方向,起点在上沿。
  • column-reverse:主轴为垂直方向,起点在下沿。
    在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

2.flex-wrap:规定item一行放不下时,是否换行,其值有:

  • nowrap(默认):不换行(会被压缩)。
  • wrap:换行,第一行在上方(垂直方向会等分)。
  • wrap-reverse:换行,第一行在下方。
    在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

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

.box {
  flex-flow: <flex-direction> <flex-wrap>;
}

4.justify-content:该属性规定了item在主轴上的对齐方式,其值有:

  • flex-start(默认值):左对齐
  • flex-end:右对齐
  • center: 居中
  • space-between:两端对齐
  • space-around:每个item两侧的间隔相等。(有点环绕居中的意味)
    在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

5.align-items:该属性规定了item在交叉轴上的对齐方式,其值有:

  • flex-start:交叉轴的起点对齐。
  • flex-end:交叉轴的终点对齐。
  • center:交叉轴的中间点对齐。
  • baseline: item的第一行文字的基线对齐。
  • stretch(默认值):如果item未设置高度或设为auto,将占满整个容器的高度。
    在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

6.align-content:规定了多条轴线时的对齐方式,单条轴线无作用,其值有:

  • flex-start:与交叉轴的起点对齐。
  • flex-end:与交叉轴的终点对齐。
  • center:与交叉轴的中间点对齐。
  • space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
  • space-around:每根轴线两侧的间隔都相等。
  • stretch(默认值):轴线占满整个交叉轴(类似平分交叉轴,然后顶端对齐)。
    在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

三、item的属性

1.order:定义item的排列顺序,数值越小,排列越靠前,默认为0。
2.flex-grow:定义item的放大比例,默认为0。
(前提是有剩余空间,无剩余空间不放大。另外,只设置一个item时,将会占满剩余空间,图左)
(图右flex-grow分别为2、1、0,item3的flex-grow为0,所以是默认宽度,剩余空间由item1和item2按2:1比列平分)
在这里插入图片描述 在这里插入图片描述
3.flex-shrink:定义了item的缩小比列,默认为1,负数无效。
(前提是空间不足,没有换行,默认全都缩小,图左。)
(图右:flex-shrink为0时,表示不缩小,如item1;item2为2,其余为默认值1)
在这里插入图片描述 在这里插入图片描述

4.flex-basis:规定item占据空间的大小,默认为auto。

.item {
  flex-basis: <length> | auto | content; /* default auto */
}

如果设为多少px(比如200px),则item将占据固定值(200px)的空间,跟设置width差不多。
如果设为content,则会根据内容设置大小,下图item1和item2。
在这里插入图片描述
5.flex:该属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为“0 1 auto”,后两个属性可选。

.item {
  flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
}

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

.item {
  align-self: auto | flex-start | flex-end | center | baseline | stretch;
}

(下图item2值为flex-end,item3值为center )
在这里插入图片描述

大概就这样吧,截图好累啊!!!

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值