Flexbox 属性总结

一、容器属性(display: flex 的那一层)

加在父元素上

属性 默认值 可取值 一句话说明
flex-direction row row / row-reverse / column / column-reverse 决定主轴方向:横着排还是竖着排。
flex-wrap nowrap nowrap / wrap / wrap-reverse 项目超宽时是否折行。
flex-flow row nowrap 上面两个的缩写,先方向后折行 例:flex-flow: column wrap;
justify-content flex-start flex-start / flex-end / center / space-between / space-around / space-evenly 主轴上「整行」怎么对齐。
align-items stretch stretch / flex-start / flex-end / center / baseline 交叉轴上「单行」里每个项目怎么对齐。
align-content stretch stretch / flex-start / flex-end / center / space-between / space-around / space-evenly 交叉轴上「多行」之间怎么分布;只有 wrap 出多行时才生效。
gap 0 长度或百分比 行列之间的固定缝隙,不用再加 margin。

二、项目属性(flex 子元素)

加在子元素上

属性 默认值 可取值 一句话说明
flex-grow 0 数字 ≥ 0 剩余空间要不要「瓜分」;0 表示不抢,1 表示抢 1 份。
flex-shrink 1 数字 ≥ 0 空间不够时能不能「被压缩」;0 表示不压缩,1 表示可压缩。
flex-basis auto 长度或百分比 项目「初始主尺寸」,优先级高于 width/height。
flex 0 1 auto 上面三个的缩写,顺序固定 grow shrink basis 常见写法:flex: 1; 等价 1 1 0%flex: none; 等价 0 0 auto
align-self auto auto / 其余同 align-items 单项目覆盖父级的 align-items。
order 0 整数 数字越小越靠前,可负数,不改变 DOM 顺序,只改变视觉顺序。

三、5 条万能公式

水平居中

javascript 复制代码
.box { display: flex; justify-content: center; }

垂直居中

javascript 复制代码
.box { display: flex; align-items: center; }

完全居中

javascript 复制代码
.box { display: flex; justify-content: center; align-items: center; }

右侧固定、左侧自适应

javascript 复制代码
.left  { flex: 1; }      /* 抢剩余空间 */
.right { flex: 0 0 200px; } /* 不抢也不缩,固定 200px */

多列等高 + 自动折行

javascript 复制代码
.container {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;   /* 默认就是 stretch,可省略 */
}
.item {
  flex: 1 1 300px;   /* 最小 300px,空间够就等分,不够就折行 */
}

四、容易踩的 4 个小坑

  1. align-content 只有多行才生效,单行时再怎么改都看不出效果。

  2. flex-basis 优先级高于 width/height;如果想用 width,就把 basis 设成 auto 或 0。

  3. 项目内文本 white-space: nowrap 会让项目「撑开」导致溢出,记得给项目加 min-width: 0overflow:hidden

  4. order 只能改视觉顺序,屏幕阅读器仍按 DOM 顺序朗读,别用它做语义重排。

相关推荐
华玥作者10 小时前
[特殊字符] VitePress 对接 Algolia AI 问答(DocSearch + AI Search)完整实战(下)
前端·人工智能·ai
Mr Xu_10 小时前
告别冗长 switch-case:Vue 项目中基于映射表的优雅路由数据匹配方案
前端·javascript·vue.js
前端摸鱼匠10 小时前
Vue 3 的toRefs保持响应性:讲解toRefs在解构响应式对象时的作用
前端·javascript·vue.js·前端框架·ecmascript
lang2015092811 小时前
JSR-340 :高性能Web开发新标准
java·前端·servlet
好家伙VCC11 小时前
### WebRTC技术:实时通信的革新与实现####webRTC(Web Real-TimeComm
java·前端·python·webrtc
未来之窗软件服务12 小时前
未来之窗昭和仙君(六十五)Vue与跨地区多部门开发—东方仙盟练气
前端·javascript·vue.js·仙盟创梦ide·东方仙盟·昭和仙君
嘿起屁儿整12 小时前
面试点(网络层面)
前端·网络
VT.馒头12 小时前
【力扣】2721. 并行执行异步函数
前端·javascript·算法·leetcode·typescript
phltxy13 小时前
Vue 核心特性实战指南:指令、样式绑定、计算属性与侦听器
前端·javascript·vue.js
Byron070714 小时前
Vue 中使用 Tiptap 富文本编辑器的完整指南
前端·javascript·vue.js