博客
关于我
flex弹性布局知识点详解
阅读量:333 次
发布时间:2019-03-01

本文共 2835 字,大约阅读时间需要 9 分钟。

01_1flex-direction

  • flex-direction用来控制子项整体布局方向,是从左往右还从右往左,是从上往下还是从下往上
取值 含义
row 默认值,显示为行。方向为当前文档水平流方向,默认情况下是从左往右在这里插入图片描述
row-reverse 显示为行。但方向和row属性值方向相反在这里插入图片描述
column 显示为列在这里插入图片描述
column-reverse 显示为列。但方向和column属性值是反的在这里插入图片描述

01_2 flex布局特性

 当输入的内容宽度大于设定区域的宽度时,会自动平均分配,改变内容宽度大小;但是当内容过多超过可分配宽度,则内容会溢出

01_3 flex-wrap

  • flex-wrap用来控制子项整体单行显示还是换行显示
取值 含义
nowrap 默认值,表示单行显示,不换行 在这里插入图片描述
wrap 宽度不足换行显示在这里插入图片描述
wrap-reverse 宽度不足换行显示,但是是从下往上开始,也就是原本换行在下面的子项现在跑到上面在这里插入图片描述

01_4flex-flow

  • flex-flow属性是flex-direction和flex-wrap的缩写,表示flex布局的flow流动性。第一个值表示方向,第二个值表示换行,中间用空格隔开

01_5 justify-content

  • justify-content属性决定了主轴方向上子项的对齐和分布方式
取值 含义
flex-start 默认值,表现为起始位置对齐 在这里插入图片描述
flex-end 表现为结束位置对齐在这里插入图片描述
center 表现为居中对齐在这里插入图片描述
space-between 表现为两端对齐,between是中间的意思,意思是多余的空白间距只在元素中间区域分配在这里插入图片描述
space-around around是环绕的意思,意思是每个flex子项两侧都环绕互不相干扰的等宽的空白间距,最终视觉上边缘两侧的空白只有中间空白宽度一半在这里插入图片描述
space-evenly evenly是匀称、平等的意思。也就是视觉上,每个flex子项两侧空白间距完全相等在这里插入图片描述

01_6align-items

  • align-items中的items指的就是flex子项们,因此align-items指的就是flex子项们相对于flex容器在侧轴方向上的对齐方式。
  • align-items是针对一行子项的对齐方式
  • 为了方便观察源代码添加了justify-content: space-evenly;
取值 含义
stretch 默认值,flex子项拉伸在这里插入图片描述
flex-start 表现为容器顶部对齐在这里插入图片描述
flex-end 表现为容器底部对齐在这里插入图片描述
center 表现为垂直居中对齐在这里插入图片描述

01_7align-content

  • align-content可以看成和justify-content是相似且对立的属性,如果所有flex子项只有一行,则align-content属性是没有任何效果的。
  • align-content是多行子元素的对齐方式
取值 含义
stretch 默认值,每一行flex子元素都等比拉伸。例如:如果共两行flex子元素,则每一行拉伸高度是50%。
flex-start 表现为起始位置对齐
flex-end 表现为结束位置对齐
center 表现为居中对齐
space-between 表示为两端对齐
space-around 每一行元素上下都享有独立不重叠的空白空间
space-evenly 每一行元素都完全上下等分

01_8总结

  • 01_1–01_7是添加在父元素的css样式
  • 因为justify-contentalign-itemsflex-wrap是针对单行子项的对齐方式,所有折行时上下两行会出现空白间隔,结合align-content使用后可消除。
  • css
  • html
    
测试文本
测试文本测试文本
测试文本测试文本测试文本
测试文本
测试文本测试文本
测试文本
测试文本测试文本
测试文本测试文本测试文本
测试文本
测试文本测试文本
  • 没加

    在这里插入图片描述

  • 添加后

    在这里插入图片描述

02_1作用在flex子项上的css属性

  • 示例:
    在这里插入图片描述
取值 含义
order 可以通过设置order改变某一个flex子项的排序位置。所有的flex子项的默认order属性是0. 值越大越往后排
flex-grow 属性中的grow是扩展的意思,扩展就是flex子项所占据的宽度,扩展所侵占的空间就是去除元素外的剩余的空白的间隙。默认值为0.
flex-shrink 属性中的shrink是收缩的意思,flex-shrink主要处理当flex容器空间不足时候,单个元素的收缩比例,默认值为1.
flex-basis flex-basis定义了在分配剩余空间之前元素的默认大小
flex 是flex-grow,flex-shrink,flex-basis的缩写
align-self 指控制单独某一个flex子项的垂直对齐方式
  • 给第一个子项设置order:1;

    在这里插入图片描述

  • flex-grow

    • 给第一个子项添加flex-grow: 1;。当设置的值">=1"时第一个子项会把本来在右边的空白区域占满
      在这里插入图片描述
    • 值为0.5时就占一半
      在这里插入图片描述
    • 每个子项都设置:flex-grow: 0.25;,则每个子项平分空白区域
      在这里插入图片描述
  • flex-shrink

    当空间不足时默认收缩,(下图是没有给子项添加flex-shrink的)
    当空间不足是默认收缩

    • 给第一项添加flex-shrink: 0;,不收缩
      在这里插入图片描述
    • 给第一项添加flex-shrink: 2;,数值越大收缩越明显在这里插入图片描述
  • flex-basis

    • 给子项设置flex-basis: 30px;就相当于设置了width: 30px;
    • 当子项同时设置了flex-basis: 150px; width: 100px;,width的优先级低于flex-basis的,此时显示的宽度是150px
    • 当父容器宽度不足,flex-basis值过大时,flex-basis的优先级小于父容器宽度
  • flex-grow、flex-basis、flex-shrink的混合写法

    • flex: 0 1 auto;(默认值),分别对应flex-growflex-shrinkflex-basis
    • 优先级
      在这里插入图片描述
      • 当给子项单独添加flex-grow: 0;,且子项设置了宽度时,flex-grow优先级低不起作用
        在这里插入图片描述
      • 给子项单独添加flex: 0;,且子项设置了宽度时,flex优先级高起作用
        在这里插入图片描述
      • 当时flex-grow/flex设置的值大于0时,flex-grow/flex优先级都比宽度高

转载地址:http://spoo.baihongyu.com/

你可能感兴趣的文章
NHibernate学习[1]
查看>>
NHibernate异常:No persister for的解决办法
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_更新时如果目标表中不存在记录就改为插入数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0059
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
查看>>
NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_生成插入Sql语句_实际操作02---大数据之Nifi工作笔记0041
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
查看>>
NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
查看>>
nifi使用过程-常见问题-以及入门总结---大数据之Nifi工作笔记0012
查看>>
NIFI分页获取Mysql数据_导入到Hbase中_并可通过phoenix客户端查询_含金量很高的一篇_搞了好久_实际操作05---大数据之Nifi工作笔记0045
查看>>
NIFI分页获取Postgresql数据到Hbase中_实际操作---大数据之Nifi工作笔记0049
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>