order属性可调整Flex子元素显示顺序而不改HTML,默认值0,数值越小越靠前,仅对flex容器直接子元素生效,需确保父容器设display: flex或inline-flex。

Flex布局中元素显示顺序和HTML源码顺序不一致时,用order属性就能快速调整,无需改动HTML结构。
order属性的基本用法
order默认值是0,数值越小越靠前,越大越靠后。它只对flex容器的直接子元素生效,不影响其他布局方式。
- 给需要前置的元素设
order: -1,它会排在所有order: 0元素之前 - 多个元素可设相同
order值,此时按HTML源码顺序排列 -
order支持负数、0、正数,没有上限或下限限制
注意flex容器必须启用flex
如果order没效果,先确认父容器已设置display: flex或display: inline-flex。仅子元素设order而父元素不是flex容器,该属性会被忽略。
例如:
立即学习“前端免费学习笔记(深入)”;
.container { display: flex; }.item-first { order: -1; }
.item-second { order: 1; }
避免与语义和可访问性冲突
视觉顺序调整后,屏幕阅读器仍按HTML源码读取。如果重排是为了逻辑优先级(比如把“跳过导航”链接提前),建议同步调整DOM顺序;若仅为视觉优化(如移动端换序),需确保信息流依然合理。
- 不要仅靠
order把重要内容“藏”到末尾再提上来 - 测试键盘Tab焦点顺序是否符合用户预期
- 必要时配合
aria-order等辅助说明(注意:aria-order并非标准属性,应慎用)
与其他flex属性的配合
order可和flex-direction协同使用。例如flex-direction: column-reverse会让整体倒序,此时order是在这个倒序基础上再微调。
- 横向布局中,
order影响主轴(main axis)上的位置 - 纵向布局中,同样作用于主轴——即垂直方向
- 和
align-self、justify-content无直接冲突,可共存










