Spec-Zone.ru › CSS

Свойство CSS `order`

Базовая поддержка Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с сентября 2015 года.

Свойство order CSS задаёт порядок размещения элемента во flex- или grid-контейнере. Элементы в контейнере сортируются по возрастанию значения order, а затем в порядке их расположения в исходном коде. Элементам, для которых явно не задано значение order, присваивается значение по умолчанию 0.

Попробуйте

order: 0;
order: 3;
order: -1;
order: 2;
<section class="default-example" id="default-example">
  <div class="transition-all" id="example-element">Box 1:</div>
  <div style="order: 1">Box 2: <code>order: 1;</code></div>
  <div style="order: 2">Box 3: <code>order: 2;</code></div>
  <div style="order: 2">Box 4: <code>order: 2;</code></div>
  <div style="order: 3">Box 5: <code>order: 3;</code></div>
</section>
.default-example {
  max-height: 300px;
  display: flex;
  flex-flow: column;
}

.default-example > div {
  background-color: rgb(0 0 255 / 0.2);
  border: 3px solid blue;
  margin: 0.5rem;
  padding: 0.5rem;
  flex: 1;
}

#example-element {
  background-color: rgb(255 0 200 / 0.2);
  border: 3px solid rebeccapurple;
}

#example-element::after {
  content: attr(style);
  outline: 2px dashed;
  font-family: monospace;
}

В демонстрации выше выберите параметры слева, чтобы изменить значение свойства order розового блока. Для светло-голубых блоков заданы фиксированные значения order.

Помните о влиянии порядка элементов в исходном коде. Например, когда выбран параметр order: 2;, розовый блок располагается перед двумя синими блоками со значением order: 2;. Это происходит потому, что розовый блок находится в исходном коде перед синими блоками.

Синтаксис

/* <integer> values */
order: 5;
order: -5;

/* Global values */
order: inherit;
order: initial;
order: revert;
order: revert-layer;
order: unset;

Поскольку свойство order предназначено только для изменения визуального порядка элементов, а не их логического порядка или порядка обхода с клавиатуры, его нельзя использовать для невизуальных средств, таких как речь.

Это свойство определено в модуле CSS display и влияет только на элементы сетки и flex-элементы. Если для элемента задано order, но свойство display его родителя не создаёт flex- или grid-контейнер, это свойство не оказывает никакого эффекта.

Значения

<integer>
Обозначает порядковую группу, используемую для элемента.

Доступность

Использование свойства order приводит к несоответствию между визуальным представлением содержимого и порядком элементов в DOM. Это негативно скажется на пользователях со слабым зрением, которые используют вспомогательные технологии, например программы чтения с экрана. Если визуальный порядок отличается от порядка в DOM, взаимодействие пользователей с содержимым будет различаться в зависимости от способа доступа к нему.

  • Flexbox и нарушение порядка навигации с клавиатуры — Tink (2016)
  • Порядок элементов в исходном коде имеет значение — Adrian Roselli (2015)
  • Пояснения к руководству 1.3 WCAG
  • [Понимание критерия успеха 1.3.2 Руководство W3C по WCAG 2.0](https://www.w3.org/TR/UNDERSTANDING-WCAG20/content-structure-separation-sequence.html)

Формальное определение

Начальное значение 0
Применяется к Flex-элементы, элементы сетки и абсолютно позиционированные дочерние элементы flex- и grid-контейнеров
Наследуется нет
Вычисленное значение как задано
Тип анимации целое число <a href="/en-US/docs/Web/CSS/Reference/Values/integer#interpolation" title="Значения типа данных CSS <integer> интерполируются дискретными целочисленными шагами. Вычисление выполняется так, как если бы это были вещественные числа с плавающей точкой, а дискретное значение получается с помощью функции floor.">целое число</a>

Формальный синтаксис

order = 
  <integer>

<integer> = 
  <number-token>

Примеры

Упорядочивание элементов во flex-контейнере

В этом примере мы создадим классический макет с двумя боковыми панелями.

HTML

Добавим заголовок, нижний колонтитул и основную область содержимого. Основная область включает статью и две боковые панели. Обратите внимание на их порядок! Мы изменим визуальный порядок с помощью свойства CSS order.

<header>Header</header>
<main>
  <article>Article</article>
  <nav>Nav</nav>
  <aside>Aside</aside>
</main>
<footer>Footer</footer>

CSS

Для оформления основной области мы используем возможности модуля гибкой блочной раскладки; задав для свойства display значение flex, мы превратим элемент <main> во flex-контейнер. По умолчанию это создаёт flex-элементы одинаковой высоты. Для обеих боковых панелей задаётся абсолютная width, а элемент <article> займёт всё положительное свободное пространство благодаря коэффициенту flex-grow, заданному с помощью сокращённого свойства flex.

Затем мы задаём разные значения свойства order для каждого из трёх дочерних элементов flex-контейнера; таким образом, визуальный порядок компонентов задаётся в CSS, а не определяется порядком их объявления в HTML.

main {
  display: flex;
  text-align: center;
}
main > article {
  flex: 1;
  order: 2;
}
main > nav {
  width: 200px;
  order: 1;
}
main > aside {
  width: 200px;
  order: 3;
}

Результат

Элемент <article> первым идёт в исходном коде, но визуально отображается в центре.

Спецификации

Спецификация
CSS Display Module Level 3
# order-property

Совместимость с браузерами

Настольные компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari для iOS Samsung Internet WebView для Android WebView для iOS
order
29
21
12
12
20Начиная с Firefox 28 поддерживается многострочная flex-разметка.
49
12.1
9
7
29
25
20Начиная с Firefox для Android 28 поддерживается многострочная flex-разметка.
49
12.1
9
7
2.0
1.5
4.4
4.4
9
7

См. также

  • Основные понятия flexbox
  • Упорядочивание flex-элементов
  • CSS Grid Layout и доступность
  • Модуль CSS display
  • Порядок чтения

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/order

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API