博客列表 >flex容器与项目笔记作业和感想

flex容器与项目笔记作业和感想

移动用户-5435854
移动用户-5435854原创
2020年04月10日 16:32:28703浏览

作业

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-directionflex-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 这个是针对项目中某个项目的交叉轴对齐方式

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议
移动用户-54358542020-04-10 18:00:401楼
加油!我会加油的!