flex 布局

116 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第15天,点击查看活动详情

容器属性

display:flex的属性的元素是容器属性

flex-direction

作用:决定 item 排列方向

image.png flex-direction的值有 row(默认)/row-reverse/column/column-reverse row: 默认情况下,主轴方向水用对其,item沿着主轴从左到右排列 column: 主轴变为竖直方向,item 沿主轴从上至下排列 row-reverse:主轴水平,item 从右至左排列 字面意思row反过来 column-reverse:主轴竖直,item 从下至上排列

flex-wrap

作用:flex-wrap 决定项目在盒中无法撑满的情况下,是否换行。 取值 nowrap(默认)/wrap/wrap/reverse nowrap:默认情况,自动缩小项目的宽度,不换行 wrap:换行,且第一行在上方 wrap-reverse:换行,第一行在下面(与 wrap 相反)

flex-flow

flex-direction和flex-wrap合并写法,取值为 flex-direction值 flex-wrap值; 例如: column wrap ,竖着排列会换行

justify-content

作用:决定 item 在横向主轴上的对齐方式,取值有 flex-start(默认),flex-end,center,space-between,space-around,space-evenly。 flex-start:主轴方向开始对齐 flex-end:主轴方向结束对齐 center:主轴方向居中对齐 space-between:主轴方向两端对齐,两侧无边距,中间间距平均分配 space-around:每个item左右两边间距平均分配,ui效果是左右两侧的间距是中间item间距的一半 space-evenly:左右两侧和item间距都相同,完全平分 注意⚠️,这里的主轴和flex-direction相关,flex-row是,主轴为水平轴,flex-column时,主轴为垂直轴

align-time

作用:决定了item在侧轴(与主轴垂直的轴)方向的对齐方式,取值为:flex-srart/flex-end/center/stretch(默认)/baseline flex-start:侧轴相对item开始对齐 flex-end:侧轴相对item结束对齐 center:侧轴相对item居中对齐 stretch:默认值,item未设置高度时,高度拉伸为容器高度 baseline:文本的基线对齐,受line-height属性影响,会按基线相对容器顶端最远的对齐

align-content

作用:当设置flex-wrap:wrap或者wrap-reverse时,并且item多到足够换行时,多行在交叉轴上的对齐方式 flex-start:侧轴开始对齐

flex-end 侧轴结束对齐

center:垂直居中对齐

space- between:沿轴线两端对齐

space-around:沿轴线均匀分布

stretch:各行将根据其 flex-grow 值伸展以充分占据剩余空间

item属性

display:flex里面的都是item

order

order 的值是整数,默认为 0,整数越小,item 排列越靠前

flex-grow

作用:当 flex 容器有多余空间时,item 是否放大。默认值为 0,即当有多余空间时也不放大; 值为整数,表示不同 item 的放大比例。

flex-shrink

作用:当容器空间不足时,item 是否缩小。默认值为 1,表示当空间不足时,item 自动缩小, 值为整数,表示不同 item 的缩小比例。

 flex-basis

作用:表示 item 在主轴上占据的空间,默认值为 auto。

 align-self

align-self 属性允许 item 有自己独特的在交叉轴上的对齐方式,设置align-self时,优先级大于容器属性的align-item auto:自动 flex-start:item开始对齐 flex-end:item结束对齐 center:item居中对齐 baseline:item 文本基线对齐 stretch:当 item 未设置高度时,item 将和容器等高对齐