Flex子元素order属性不生效,主因是父容器未设display:flex、目标元素非直接子元素、被float/absolute干扰、order值未显效、CSS优先级覆盖或flex-direction影响。
Flex 布局中子元素的 order 属性不生效,通常不是属性写错了,而是被其他更优先的规则覆盖,或忽略了 Flex 容器的基本前提。
order 只在 Flex 容器(即设置了 display: flex 或 display: inline-flex)的直接子元素上才起作用。如果父元素没设 flex,或子元素被包裹在中间层(比如 div 套 div),order 就完全无效。
display: flex(注意:不能只写 flex,也不能漏掉 display:)float、position: absolute 等脱离文档流的属性干扰 flex 排列

所有 flex 子项默认 order: 0。数值越小越靠前,相同值则按 HTML 源顺序排列。如果你设了 order: 1 和 order: 2 却没看到变化,很可能是它们原本就在这个顺序里,或者有其他元素也设了 0 占据了前面位置。
order: -1 或更低(如 -99)比设 1 更稳妥order,建议对相关兄弟元素统一编号,例如:order: 1、order: 2、order: 3
order 值确实被应用且未被覆盖order 是普通 CSS 属性,会被更高权重的规则覆盖,比如内联样式、!important、或更具体的选择器。
order: 0 或其他值并带 !important
order 是否显示为删除线(表示被覆盖)!important 测试是否生效(仅用于排查,不建议线上长期使用)order 控制的是视觉顺序,但最终排列方向还受 flex-direction 影响。比如设了 flex-direction: column-reverse,即使 order 值正常,整体流向也会倒过来,容易造成“调了没反应”的错觉。
flex-direction 是你预期的方向(常用 row 或 column)row-reverse 或 column-reverse,order 依然有效,但需结合反向逻辑理解结果flex-direction,验证 order 是否能独立起作用