最近开始对flex布局进行一个从新的认识。布局
首先。flex
flex布局适用于全部元素spa
可是注意一点的就是,一旦父级元素设定flex布局的时候,子元素的传统布局属性, float,clear,vertical-align属性都会失效的。blog
一.父容器的属性it
1.flex-directionio
是决定元素主轴的方向容器
row:默认值,由左到右正序。float
row-reverse:有右到左的逆序im
column:有上倒下的正序项目
column-reserve:由下到上的逆序
2.flex-wrap
是否换行
nowrap:默认值,不换行(当元素数量和宽度超出父级,就会缩短自身宽度)
wrap:换行(保留当前宽度,换行。且行高等于父级元素的一半)
wrap-reverse:由下向上换行,同wrap同样,但若是父级宽度太低,那行高就为1
3.justify-content
定义元素在父级X轴对齐方式
flex-start:默认值,元素左对齐。
flex-end:元素右对齐
center:元素中间对齐
space-between:元素等分两边对齐
space-around:元素等分,两边有间隔。且间隔是元素之间间隔的一半
4.align-items
定义元素在父级y轴对齐的方式
flex-start:元素上对齐
flex-end:元素下对其
center:元素居中显示
stretch:默认值,若是没设置高度,那么高度就为100%;
5.align-centent
当超过两行的时候,上下对齐方式
flex-start:元素上对其
fled-end:元素下对其
center:元素剧中对齐
stretch:默认值,占满整个交叉轴
space-between:元素等分上下对齐
space-around:元素等分,上下又间隔,且间隔是元素之间间隔的一半
2、子元素的属性
1.order
order默认值为0,属性定义元素的排列顺序,最小越前
2.flex-grow
flex-grow默认值为0,属性定义元素宽高增大占比,值越大占比越大
3.flex-shrink
flex-shrink默认值为1,属性定义元素宽高缩小占比,值越大缩小越大,负值无效
4.flex-basis
flex-basis默认值为auto,属性意义和width相同,可是优先级高于width
5.align-self
align-self默认值是flex-start,属性的定义和align-items相同,可是会覆盖其样式单独定义
3、疑难点
1.align-items和align-content之间文字的区别?
不少人对这两个属性又一些不解,一样都是操纵子元素Y轴可是,align-content只能操做多
行,单行是无效的。并且align-content会重置flex项目元素对自身等分的行高问题。
话很少说一个图能表明一切:
这样是否是就了解了
2.align-self和align-items之间的区别
相对于第一个问题,这个就更简单了,align-items是给子元素规定一个统同样式,而align-self
是单独的本身给本身样式。
暂且有这么多。之后在有问题在补充