css基础之flex布局

html-css024

css基础之flex布局,第1张

很多时候跟着书和不系统的视频学习,会发现没有方向,学了很多却不知道自己能够做出什么成绩。

学习要有一个清晰的职业学习规划,学习过程中会遇到很多问题,你可以到我们的web学习交流君羊- 点击此处 ,

同时准备了基础,进阶学习资料。学友都会在里面交流,分享一些学习的方法和需要注意的小细节,每天也会准时讲一些项目实战案例。

————————————————

1.什么是flex

flex 是 Flexible Box 的缩写,意为 弹性布局

flex布局中把一个元素作为容器,容器中的子元素称为项目

可以通过容器的flex属性,设置所有项目的排列样式。也可以通过项目的flex属性,设置指定项目的排列样式。

2.flex布局的方向

flex布局项目的排列方向可以有两个维度,一水平,二垂直

项目排列方向称为主轴,与主轴垂直的方向叫交叉轴

在每个轴上有两个方向,从左至右,从右到左;从上到下,从下到上。

2.1 flex水平布局

在水平维度,默认方向是从左至右

可以通过 flex-direction:row-reverse设置为从右到左排列

效果图:

1).默认方向,从左至右

2).反方向

2.2 垂直布局

效果图:

1).默认方向,从上到下

2).反方向

3. 容器内项目换行

通过flex-wrap属性,设置项目在容器内是否可以换行,默认不允许换行。

不换行的称为单行容器,换行的称为多行容器

也可以通过flex-flow属性同时设置容器主轴方向和是否换行(推荐使用)

效果图:

1).默认不允许换行,项目被压缩

2).允许换行,当剩余宽度不足容纳一个项目块时,就换行

相关知识:

css如何实现边框长度控制功能

详细介绍css中的数学表达式calc()

关于书籍:需要学习资料的小伙伴们可以加群, 点击此处

弹性元素是 container直接的在文档流中的子元素

container在文档流中的子元素才是弹性子元素

弹性元素的默认宽高为内容宽高

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

container内的排列顺序: 从左往右 从右往左 从上往下 从小往上(都是从container对应方向边缘开始)

flex-wrap: nowrap|wrap|wrap-reverse

order: <integer>

initial: 0

两个黄色元素没有设置order, 默认为0

flex-basis: <height>|<width>

设置的是宽还是高根据主轴来定, 如果主轴是行则设置默认宽度, 如果主轴是列则设置默认高度

flex-grow: <integer>

initial: 0

弹性元素的宽或高计算:

flex-basis + flow-grow/sum(flow-grow)*remain

flex-shrink: <integer>

initial: 1

弹性元素的宽或高计算:

flex-basis + flow-shrink/sum(flow-shrink)*remain

这里的remain是负值, 表示超出的内容大小

flex: <flex-grow>|| <flex-shrink>|| <flex-basis>

initial: 0 1 main-size ( main-size 元素沿主轴方向默认尺寸)

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

效果依次如下:

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

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

initial: auto

当多行时: 应用于行

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