CSS中的flex布局
qingheluo2020-10-13清河洛713
Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性是W3C提出的一种新的方案,可以简便、完整、响应式地实现各种页面布局它即可以设置容器为块元素(display:flex),也可以设置容器为行内元素(display:inline-flex)设为Flex布局以后,子元素的float、clear和vertical-align属性将失效目前,它已经得到了所有浏览器的支持。定义容器的六个属性flex-direction:容器内元素的排列方向(默认row)row,沿水平主轴从左向右排列
row-reverse,沿水平主轴从右向左排列
column,沿垂直主轴从...
Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性
是W3C提出的一种新的方案,可以简便、完整、响应式地实现各种页面布局
它即可以设置容器为块元素(display:flex),也可以设置容器为行内元素(display:inline-flex)
设为Flex布局以后,子元素的float、clear和vertical-align属性将失效
目前,它已经得到了所有浏览器的支持。
定义容器的六个属性
flex-direction:容器内元素的排列方向(默认row)
row,沿水平主轴从左向右排列
row-reverse,沿水平主轴从右向左排列
column,沿垂直主轴从上到下垂直排列
column-reverse,沿垂直主轴从下到上垂直排列
flex-wrap:容器内元素的换行(默认nowrap)
nowrap:不换行,如一个div宽度100%,设置此属性,2个div宽度就自动变成各50%
wrap:自动换行,向下方换行,第一行在上方
wrap-reverse:自动换行,向上方换行,第一行在下方
flex-flow:是flex-direction属性和flex-wrap属性的简写形式,默认值为:row nowrap
justify-content:容器内元素在水平主轴上的对齐方式(默认flex-start)
center:水平居中对齐
flex-start:水平方向左对齐
flex-end:水平方向右对齐
space-between:从两端分散对齐
space-around:每个元素左右两侧的间隔相等分散对齐
align-items:容器内元素在当前行的垂直方向上的对齐方式(默认stretch)
flex-start:顶部对齐
flex-end:底部对齐
center:水平中间线对齐
baseline:第一行文字的基线对齐
stretch:如果元素未设置高度或设为auto,将占满整个容器的高度。
align-content:容器内元素垂直主轴上的对齐方式(默认center)
flex-start:顶部对齐
flex-end:底部对齐
stretch:居中对齐
center:每个元素下间隔相同占满垂直空间
space-between:从两端分散对齐
space-around:每个元素上下两侧的间隔相等分散对齐
容器内元素的属性:
order :定义元素的排列顺序,数值越小越靠前,可以为负数,默认为0
flex-grow :定义如果存在剩余空间元素的放大比例,默认为0,表示不放大
如果所有元素的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。
如果其中一个元素的flex-grow属性为2,其他都为1,则前者占据的剩余空间将比其他项多一倍。
flex-shrink :定义如果空间不足元素的缩小比例,0表示不缩小,默认为1,负值无效
flex-basis:定义了在分配多余空间之前,元素占据的水平宽度
浏览器根据这个属性,计算主轴是否有多余空间。
它的默认值为auto,即项目的本来大小。
它可以设为跟width或height属性一样的值(比如350px),则项目将占据固定空间
flex:是flex-grow, flex-shrink 和 flex-basis的简写
默认值为0 1 auto,后两个属性可选
该属性有两个快捷值
auto (1 1 auto) 和 none (0 0 auto)
align-self:允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性
默认值为auto,表示继承父元素的align-items属性
如果没有父元素,则等同于stretch