全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-16 5 分钟 ✍️ juanwangdev

Flex布局之order

order 属性控制 Flex 子元素的显示顺序,数值越小越靠前,无需修改 HTML 结构。

基本语法

CSS
.item {
  order: <integer>;  /* 整数,默认为 0 */
}

工作原理

  • 默认值:0
  • 数值越小,排列越靠前
  • 数值越大,排列越靠后
  • 相同值按 DOM 顺序排列

基本用法

CSS
.container {
  display: flex;
}

.item-1 { order: 3; }  /* 排最后 */
.item-2 { order: 1; }  /* 排第一 */
.item-3 { order: 2; }  /* 排中间 */
HTML
<div class="container">
  <div class="item-1">A</div>  <!-- 显示顺序:3 -->
  <div class="item-2">B</div>  <!-- 显示顺序:1 -->
  <div class="item-3">C</div>  <!-- 显示顺序:2 -->
</div>
<!-- 实际显示:B C A -->

常见场景

移动端导航重排

CSS
.nav {
  display: flex;
}

.logo {
  order: 1;
}

.menu {
  order: 3;
}

.search {
  order: 2;
}

@media (min-width: 768px) {
  .logo { order: 1; }
  .search { order: 2; }
  .menu { order: 3; }
}

侧边栏位置切换

CSS
.layout {
  display: flex;
}

.main {
  order: 1;
  flex: 1;
}

.sidebar {
  order: 2;
  width: 250px;
}

@media (min-width: 1024px) {
  .main { order: 2; }
  .sidebar { order: 1; }  /* 桌面端侧边栏在左 */
}

表单按钮排序

CSS
.form-actions {
  display: flex;
}

.btn-cancel {
  order: 2;
  margin-left: auto;  /* 推到右边 */
}

.btn-submit {
  order: 1;
}

组合使用

与 flex-direction 配合

CSS
.container {
  display: flex;
  flex-direction: row-reverse;  /* 反向排列 */
}

.item-1 { order: -1; }  /* 仍会排在前面 */

多层级排序

CSS
.container {
  display: flex;
}

.priority-high { order: -1; }
.priority-normal { order: 0; }
.priority-low { order: 1; }

注意事项

  • order 仅影响视觉顺序,不影响 DOM 结构
  • Tab 键导航仍按 DOM 顺序,可能影响可访问性
  • 屏幕阅读器按 DOM 顺序读取,可能与视觉顺序不一致
CSS
/* 建议:重要的交互元素保持合理的 DOM 顺序 */
.button-primary {
  order: 1;
}
.button-secondary {
  order: 2;
}

实际案例

卡片内容重排

CSS
.card {
  display: flex;
  flex-direction: column;
}

.card-image {
  order: 1;
}

.card-title {
  order: 2;
}

.card-desc {
  order: 3;
}

.card-footer {
  order: 4;
}
HTML
<div class="card">
  <h3 class="card-title">标题</h3>      <!-- DOM 第1,显示第2 -->
  <img class="card-image" src="...">    <!-- DOM 第2,显示第1 -->
  <p class="card-desc">描述</p>         <!-- DOM 第3,显示第3 -->
  <div class="card-footer">底部</div>   <!-- DOM 第4,显示第4 -->
</div>

要点总结

  • order 默认值为 0,数值越小越靠前
  • 仅改变视觉顺序,不影响 DOM 和可访问性
  • 适合响应式布局重排、视觉优先级调整
  • 注意可访问性,交互元素应保持合理 DOM 顺序

📝 发现内容有误?点击此处直接编辑

← 上一篇 Flex布局之gap/row-gap/column-gap
下一篇 → Flex布局之等高等列布局
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库