flex弹性盒子布局

163 阅读3分钟

FLEX布局的简介

Flex 布局,弹性盒子布局。 它决定了元素如何在页面上排列,使它们能在不同的屏幕尺寸和设备下可预测地展现出来,更简便、完整、响应式地实现各种页面布局。

它的主要思想是使父元素能够调整子元素的宽度、高度、排列方式,从而更好的适应可用的布局空间。

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

如何触发flex布局

给父元素添加属性 display:flex; 默认是横向显示 (注意:与浮动没关系,类似浮动)

屏幕截图 2023-10-30 213803.png 一些基本概念: 横轴,纵轴

屏幕截图 2023-10-30 214145.png 主轴:触发弹性盒子后项目的排列方向(项目默认沿主轴方向)

侧轴:与主轴垂直的

flex布局中的容器属性

一、修改主轴方向

  1. flex-direction:row:默认横向布局

屏幕截图 2023-10-30 215341.png

2.flex-direction:row-reverse:反方向横向布局 屏幕截图 2023-10-30 215125.png

  1. flex-direction:column:主轴变为纵向
  2. flex-direction:column:主轴变为纵向,反方向排列

image.png

二、主轴对齐方式 justify-content

1.justify-content:flex-start;

不改变 默认值

2.justify-content:flex-end;

在主轴结束位置显示

image.png

3.justify-content:flex-center;

主轴中间显示

image.png

4.justify-content:space-between;

主轴两端对齐

image.png

5.justify-content:space-around;

主轴两端环绕

屏幕截图 2023-10-30 221159.png

6.justify-content:space-evenly;

主轴的间距均分

image.png

总结

image.png

三、交叉轴对齐方式 align-items

1.align-items:flex-start;

不改变 默认值

2.align-items:flex-end;

3.align-items:center;

image.png

4.align-items:baseline;

与flex-start一致,很少运用 image.png

5.align-items:stretch;

为拉伸效果,但是项目前提是没有高度设定或高度是自适应 image.png

总结

image.png

四、折行属性

没有触发弹性盒子之前,子元素过多有溢出效果,元素有自己的宽度高度

屏幕截图 2023-10-30 223139.png 在触发弹性盒子后所有横向显示,失去其宽度,不折行,积压在一起

image.png

1.flex-wrap:no-wrap;

默认属性 不改变

2.flex-wrap:wrap;

折行显示,有自己的宽度 留白空间是因为不够放入一个元素 image.png

总结

image.png

五、折行调整间距 align-content:

1.align-content:flex-start;

在侧轴的起点显示,没有行间距 image.png

2.align-content:flex-end;

在侧轴的结束位置显示,没有行间距

image.png

3.align-content:center;

在侧轴的中间位置显示,没有行间距 image.png

4.align-content:space-between;

在侧轴的两端对齐 image.png

5.align-content:space-around;

在侧轴的行间距环绕 行与行之间的距离是贴边行距离容器边的两倍 image.png

6.align-content:stretch;

行与行之间的距离是平均的 image.png

总结

image.png

flex中的项目属性

一、对项目单独调整 align-self:

属性

image.png 效果

image.png

总结

image.png

二、项目调整显示顺序

order取值可正可负 取值越大越靠朝后面 image.png

image.png

总结

image.png

三、剩余空间的所有 flex:1

1.主轴在横向

给二号元素加flex:1;

image.png 其余两个项目不变 加了的占满整行

假若都加上

image.png 平分了整个容器宽度

2.主轴在纵向

给二号元素加flex:1; image.png

假若都加上

image.png 平分了整个容器高度

总结

image.png

三、

1、flex-shrink

默认值为0被挤压的效果

取值为1时不挤压不换行

image.png 使用overflow:auto;产生滚动条

2.flex-grow

取值能为 1 2 3等等意为几倍几倍

3.flex-basis

默认值为 auto