今日所学内容: 
- Flex布局的原理
 
 
- flex布局
 
- PC端的浏览器可能会有兼容性的问题,IE11以下的低版本浏览器对flex支持情况不好
 
 
  
 
  
- 总结
 
- 移动端布局或者PC端不考虑兼容性的时候,使用flex布局
 
 
  
 
 - 原理
 
- flex 是弹性布局的意思,用来为盒子模型提供最大的灵活性,任何一个容器都可以指定为flex布局
 
 
  
  
- 当我们的父盒子设置为flex布局之后,子元素里面的float、clear和vertical-align属性都将失效
 
 
 - 采用flex布局的父元素叫做flex容器(flex-container),子元素叫做flex项目(flex-item)
 
 
 
  
 - Flex布局的父项常见属性
 
- flex-direction
 
 
- row-reverse 子元素沿x轴从右向左进行排列
 
 
 - column-reverse 子元素沿y轴从下到上进行排列
 
 
 
 - 在flex布局中x轴和y轴分别是水平向右和垂直向下的
 
 
 - x轴是默认的主轴,如果想将y轴设置为主轴,就可以使用flex-direction 属性
 
 
  
 - justify-content
 
- 常用属性值
 
- flex-start 默认值,控制子元素沿主轴头部开始排列,如果主轴是x轴,就代表从左到右
 
 
 - flex-end 控制子元素沿主轴的尾部开始排列,如果是y轴,代表从下往上
 
 
 - space-around 控制子元素平分主轴剩余空间
 
 
 - space-between 控制子元素两侧元素先贴边,然后剩余的元素平分主轴剩余空
 
 
  
  
 - flex-wrap
 
- 在flex布局中,子元素超过父元素的宽度默认是不换行,如果需要换行就要用该属性来进行
 
 
  
  
  
- align-items
 
- 常用属性值
 
- stretch 拉伸子元素到父级的宽度或高度(和主轴方向相关)
 
 
  
  
 
  
- align-content
 
- 常用属性值
 
- align-content: flex-start;
 
 
  
  
 
  
 
 
- align-content: space-around;
 
 
 
  
- align-content: space-between;
 
- 侧轴上的多行子元素两侧先沿侧轴贴边,剩余的子元素平分侧轴剩余空间
 
 
  
 - align-content: stretch;
 
-  侧轴上的子元素拉伸到平分父级高度或宽度(与主轴方向相关)
 
 
  
 
 
 
  
- aligin-items和align-content的区别
 
- algin-items适用于单行的情况,只有上对齐、下对齐、居中对齐和拉伸。
 
 
 - algin-content 适用于多行的情况,可以设置上对齐、下对齐、居中对齐、拉伸、平分空间等属性值。
 
 
  
 
  
- flex-flow
 
- 是flex-direction flex-wrap的复合属性
 
 
 - 属性值:flex-direction flex-wrap
 - justify-content
 
- 常用属性值
 
- flex-start 默认值,控制子元素沿主轴头部开始排列,如果主轴是x轴,就代表从左到右
 
 
 - flex-end 控制子元素沿主轴的尾部开始排列,如果是y轴,代表从下往上
 
 
 - space-around 控制子元素平分主轴剩余空间
 
 
 - space-between 控制子元素两侧元素先贴边,然后剩余的元素平分主轴剩余空间。
 
 
  
  
  
 
 - 设置子元素是否换行
 - 在flex布局中,子元素超过父元素的宽度默认是不换行,如果需要换行就要用该属性来进行设置
 
 
 - algin-items适用于单行的情况,只有上对齐、下对齐、居中对齐和拉伸。
 - algin-content 适用于多行的情况,可以设置上对齐、下对齐、居中对齐、拉伸、平分空间等属性值。
 
 
  |