作业
2020年4月9日作业演示点击进入
flex容器与项目
flex 容器与项目
1. display
属性
序号 |
属性值 |
描述 |
备注 |
1 |
flex; |
创建 flex 块级容器 |
内部子元素自动成为 flex 项目 |
2 |
inline-flex; |
创建 flex 行内容器 |
内部子元素自动成为 flex 项目 |
2. flex 容器与项目特征
序号 |
容器/项目 |
默认行为 |
1 |
容器主轴 |
水平方向 |
2 |
项目排列 |
沿主轴起始线排列(当前起始线居左) |
3 |
项目类型 |
自动转换”行内块级”元素,不管之前是什么类型 |
4 |
容器主轴空间不足时 |
项目自动收缩尺寸以适应空间变化,不会换行显示 |
5 |
容器主轴存在未分配空间时 |
项目保持自身大小不会放大并充满空间 |
flex 容器主轴方向
1. flex-direction
属性
序号 |
属性值 |
描述 |
1 |
row 默认值 |
主轴水平: 起始线居中,项目从左到右显示 |
2 |
row-reverse |
主轴水平:起始线居右, 项目从右向左显示 |
3 |
column |
主轴垂直: 起始线居上,项目从上向下显示 |
4 |
column-reverse |
主轴垂直: 起始线居下,项目从下向上显示 |
flex 容器主轴项目换行
1. flex-wrap
属性
序号 |
属性值 |
描述 |
1 |
nowrap 默认值 |
项目不换行: 单行容器 |
2 |
wrap |
项目换行: 多行容器,第一行在上方 |
3 |
wrap-reverse |
项目换行: 多行容器,第一行在下方 |
flex 容器主轴与项目换行简写
1. flex-flow
属性 (这个是重点用的多!)
flex-flow
是属性flex-direction
和flex-wrap
的简写- 语法:
flex-flow: flex-direction flex-wrap
属性值 |
描述 |
row nowrap 默认值 |
主轴水平, 项目不换行 |
以后推荐只用它
flex 容器主轴项目对齐
1. justify-content
属性 (这个是重点,必须掌握!)
当容器中主轴方向上存在剩余空间时, 该属性才有意义
序号 |
属性值 |
描述 |
1 |
flex-start 默认 |
所有项目与主轴起始线对齐 |
2 |
flex-end |
所有项目与主轴终止线对齐 |
3 |
center |
所有项目与主轴中间线对齐: 居中对齐 |
4 |
space-between |
两端对齐: 剩余空间在头尾项目之外的项目间平均分配 |
5 |
space-around |
分散对齐: 剩余空间在每个项目二侧平均分配 |
6 |
space-evenly |
平均对齐: 剩余空间在每个项目之间平均分配 |
flex 容器交叉轴项目对齐
1. align-items
属性 (重点!必须掌握!)
- 该属性仅适用于: 单行容器
- 当容器中交叉轴方向上存在剩余空间时, 该属性才有意义
序号 |
属性值 |
描述 |
1 |
flex-start 默认 |
与交叉轴起始线对齐 |
2 |
flex-end |
与交叉轴终止线对齐 |
3 |
center |
与交叉轴中间线对齐: 居中对齐 |
flex 多行容器交叉轴项目对齐
1. align-content
属性
- 该属性仅适用于: 多行容器
- 多行容器中, 交叉轴会有多个项目, 剩余空间在项目之间分配才有意义
序号 |
属性值 |
描述 |
1 |
stretch 默认 |
项目拉伸占据整个交叉轴 |
1 |
flex-start |
所有项目与交叉轴起始线(顶部)对齐 |
2 |
flex-end |
所有项目与交叉轴终止线对齐 |
3 |
center |
所有项目与交叉轴中间线对齐: 居中对齐 |
4 |
space-between |
两端对齐: 剩余空间在头尾项目之外的项目间平均分配 |
5 |
space-around |
分散对齐: 剩余空间在每个项目二侧平均分配 |
6 |
space-evenly |
平均对齐: 剩余空间在每个项目之间平均分配 |
提示: 多行容器中通过设置flex-wrap: wrap | wrap-reverse
实现
flex 项目交叉轴单独对齐
1. align-self
属性 (这个也是重点!必须掌握)
- 该属性可覆盖容器的
align-items
, 用以自定义某个项目的对齐方式
序号 |
属性值 |
描述 |
1 |
auto 默认值 |
继承 align-items 属性值 |
2 |
flex-start |
与交叉轴起始线对齐 |
3 |
flex-end |
与交叉轴终止线对齐 |
4 |
center |
与交叉轴中间线对齐: 居中对齐 |
5 |
stretch |
在交叉轴方向上拉伸 |
6 |
baseline |
与基线对齐(与内容相关用得极少) |
flex 项目放大因子
1. flex-grow
属性
- 在容器主轴上存在剩余空间时,
flex-grow
才有意义 - 该属性的值,称为放大因子, 常见的属性值如下:
序号 |
属性值 |
描述 |
1 |
0 默认值 |
不放大,保持初始值 |
2 |
initial |
设置默认值,与0 等效 |
3 |
n |
放大因子: 正数 |
flex 项目收缩因子
1. flex-shrink
属性
- 当容器主轴 “空间不足” 且 “禁止换行” 时,
flex-shrink
才有意义 - 该属性的值,称为收缩因子, 常见的属性值如下:
序号 |
属性值 |
描述 |
1 |
1 默认值 |
允许项目收缩 |
2 |
initial |
设置初始默认值,与 1 等效 |
3 |
0 |
禁止收缩,保持原始尺寸 |
4 |
n |
收缩因子: 正数 |
flex 项目计算尺寸
1. flex-basis
属性
- 在分配多余空间之前,项目占据的主轴空间
- 浏览器根据这个属性,计算主轴是否有多余空间
- 该属性会覆盖项目原始大小(width/height)
- 该属性会被项目的
min-width/min-height
值覆盖
序号 |
属性值 |
描述 |
1 |
auto |
默认值: 项目原来的大小 |
2 |
px |
像素 |
3 |
% |
百分比 |
优先级: 项目大小 < flex-basis
< min-width/height
flex 项目缩放的简写(重点,用的最多的,必须掌握!)
1. flex
属性
- 项目放大,缩小与计算尺寸,对于项目非常重要,也很常用
- 每次都要写这三个属性,非常的麻烦,且没有必要
flex
属性,可以将以上三个属性进行简化:- 语法:
flex: flex-grow flex-shrink flex-basis
1.1 三值语法
序号 |
属性值 |
描述 |
1 |
第一个值: 整数 |
flex-grow |
2 |
第二个值: 整数 |
flex-shrink |
3 |
第三个值: 有效宽度 |
flex-basis |
举例:
序号 |
案例 |
描述 |
1 |
flex: 0 1 auto |
默认值: 不放大,可收缩, 初始宽度 |
2 |
flex: 1 1 auto |
项目自动放大或收缩适应容器 |
3 |
flex: 0 0 100px |
按计算大小填充到容器中 |
1.2 双值语法
序号 |
属性值 |
描述 |
1 |
第一个值: 整数 |
flex-grow |
3 |
第二个值: 有效宽度 |
flex-basis |
举例:
案例 |
描述 |
flex: 0 180px |
禁止放大,按计算大小填充到容器中 |
1.3 单值语法
序号 |
属性值 |
描述 |
1 |
整数 |
flex-grow |
2 |
有效宽度 |
flex-basis |
3 |
关键字 |
`initial |
auto |
none` |
举例:
序号 |
案例 |
描述 |
1 |
flex: 1 |
flex: 1 1 auto |
2 |
flex: 180px |
flex: 1 1 180px |
3 |
initial |
flex: 0 1 auto |
4 |
auto |
flex: 1 1 auto |
5 |
none |
flex: 0 0 auto |
推荐使用flex
, 就像推荐使用flex-grow
设置主轴与换行一样
2020年4月9日学习感想:
如果用当下流行的一句话来总结昨天学的内容就是,css学习进入深水区了,作为纯零学习的小白萌新来说,挑战不在于逻辑思维理解这些内容是什么意思,而是扑面而来的多重考验,比如说英文单词的实际意思,项目填充容器的算法还要捡起算术知识,所有内容理解后,如何用到项目中去整合所学的知识,这都很难很难,学会学懂和能用好,是两码事,几千年前孔夫子大人说的学而时习之,数百年前的王阳明老先生说的知行合一,这些道理都可以用在这个阶段的学习中。
另外,特别感慨的是,小时候觉得英文没啥用,现在突然发现,想学点高深的东西,全是英语国家的人发明的,英语真的太有用了,现在用这个鼓励儿子要好好学英语,希望他能懂。
当然,也要吐槽下,英文的逻辑,真的和汉语逻辑不太一样,可是又有什么办法呢,现在话语权都让英语国家的人掌握了,如果中国能早强大几百年,源码都是汉字写的那该多好,老外思维毕竟是英语思维,很奇葩,逻辑和中国人思维还是有区别,理解代码的逻辑,还要适应英语思维方式,这个可能是阻挡很多人晋级的拦路虎吧,真心希望祖国强大,以后代码都中文写的,甚至科学文献都是中文的就好了,现在,为了战胜他们,咱们还是继续学他们的东西吧!
下面是这节课的几个重点flex属性必须掌握!
容器中flex重点:
flex-flow
:容器flex的一种简写方式,比如:flex-flow=row wrap
(意识是 容器是横着拍,允许换行)
align-content
容器交叉轴对齐方式,比如:align-content:space-evenly
(意识是纵向平均对齐,)
align-content
是多行容器,如果是单行容器就写align-item
justify-content
:容器中项目针对主轴的对齐方式:
项目中flex重点:
flex
三个值的简写的意思,比如flex:1 1 auto
aglin-self
这个是针对项目中某个项目的交叉轴对齐方式
Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:你的想法,应该代表了许多同学, 可能之前你觉得前端就那么回事, 一个前端程序员凭啥月薪十几K, 其实任何一门知识成为一个行业, 都不简单, 加油吧, 兄弟
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!