JS властивість CSSStyleDeclaration.flexFlow


Загальний опис

element.style.flexFlow – це властивість CSS, яку можна використовувати в JavaScript для встановлення або отримання значень властивостей flexDirection і flexWrap одночасно. Вона дозволяє визначити напрямок і спосіб переносу гнучких елементів у контейнері Flexbox, спрощуючи керування цими двома властивостями за допомогою одного виклику.

Властивість flexFlow може приймати два значення, об'єднані пробілом:

  1. flexDirection: визначає напрямок розташування гнучких елементів (row, row-reverse, column, column-reverse).
  2. flexWrap: визначає, чи будуть гнучкі елементи переноситися на новий рядок або колонку (nowrap, wrap, wrap-reverse).

Використання element.style.flexFlow:

  1. Встановлення значення flexFlow:

    const container = document.getElementById('flexContainer');
    container.style.flexFlow = 'row wrap';
    

    У цьому прикладі ми встановлюємо напрямок розташування гнучких елементів у рядок (row) і дозволяємо їм переноситися на новий рядок (wrap).

  2. Отримання значення flexFlow:

    const container = document.getElementById('flexContainer');
    const flexFlowValue = container.style.flexFlow;
    console.log(flexFlowValue);
    

    Цей код отримує поточне значення flexFlow для контейнера і виводить його у консоль.

Приклади

Використання column nowrap:

const container = document.getElementById('flexContainer');
container.style.flexFlow = 'column nowrap';

Цей приклад встановлює розташування гнучких елементів у колонку (column) і забороняє їм переноситися на новий рядок або колонку (nowrap).

Використання row-reverse wrap-reverse:

const container = document.getElementById('flexContainer');
container.style.flexFlow = 'row-reverse wrap-reverse';

Цей приклад змінює напрямок розташування гнучких елементів у рядок справа наліво (row-reverse) і дозволяє їм переноситися на новий рядок у зворотному напрямку (wrap-reverse).

Динамічна зміна напрямку та переносу

Розглянемо приклад динамічної зміни значення flexFlow у залежності від натискання кнопки:

const button = document.getElementById('changeFlexFlowButton');
const container = document.getElementById('flexContainer');

button.addEventListener('click', () => {
  if (container.style.flexFlow === 'row nowrap') {
    container.style.flexFlow = 'column wrap';
  } else {
    container.style.flexFlow = 'row nowrap';
  }
});

У цьому прикладі, при натисканні кнопки з id changeFlexFlowButton, значення flexFlow змінюється між row nowrap та column wrap.

Властивість element.style.flexFlow є корисним інструментом для одночасного управління напрямком і способом переносу гнучких елементів у контейнері Flexbox, забезпечуючи зручність та гнучкість у створенні складних макетів.

автор: Bond

Порада

Властивість flexFlow дозволяє легко комбінувати різні значення flexDirection і flexWrap, що робить управління розташуванням гнучких елементів більш зручним і компактним.

Використовуючи JavaScript, ви можете динамічно змінювати обидві властивості, реагуючи на події або зміни в інтерфейсі, що дозволяє створювати більш адаптивні та інтерактивні веб-додатки.

автор: Bond
Порада

Застосовуйте flexFlow у поєднанні з медіа-запитами для створення гнучких макетів, що відповідають різним пристроям. Ви можете змінювати flexFlow залежно від ширини екрану для оптимізації відображення на мобільних пристроях та десктопах:

const container = document.getElementById('flexContainer');
if (window.matchMedia('(max-width: 600px)').matches) {
  container.style.flexFlow = 'column wrap';
} else {
  container.style.flexFlow = 'row nowrap';
}
автор: Bond
Порада

Використовуйте flexFlow для динамічної адаптації макета при зміні розміру вікна. Ви можете прослуховувати подію resize і змінювати напрямок і перенесення гнучких елементів для кращої адаптивності. Наприклад, при зменшенні ширини вікна до певного значення, можна змінити flexFlow на column wrap для відображення елементів у вертикальному порядку:

window.addEventListener('resize', () => {
  const container = document.getElementById('flexContainer');
  if (window.innerWidth < 600) {
    container.style.flexFlow = 'column wrap';
  } else {
    container.style.flexFlow = 'row nowrap';
  }
});
автор: Bond

Синтаксис

element.style.flexFlow

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
29 28 9 12.1 12 11
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 29 28 9

Приклади

+ запропонувати свій приклад у пісочниці

Цей приклад демонструє, як динамічно змінювати напрямок і обтікання flex-контейнера на основі розміру вікна браузера. При ширині вікна більше 1200 пікселів, елементи розташовуються горизонтально і обтікають, при ширині між 800 і 1200 пікселями - горизонтально без обтікання, а при меншій ширині - вертикально. Це корисно для створення адаптивного дизайну, який змінюється в залежності від розміру екрана.

HTML

<div id="container">Демонстраційний елемент</div>

JS

const container = document.getElementById('container');
const items = container.children;

function updateFlexFlow() {
  const windowWidth = window.innerWidth;
  if (windowWidth > 1200) {
    container.style.flexFlow = 'row wrap';
  } else if (windowWidth > 800) {
    container.style.flexFlow = 'row nowrap';
  } else {
    container.style.flexFlow = 'column nowrap';
  }
}

window.addEventListener('resize', updateFlexFlow);
updateFlexFlow();
автор: Bond

У цьому прикладі показано, як можна змінювати напрямок і обтікання елементів на інформаційній панелі (dashboard) за допомогою кнопки. Початково елементи розташовуються горизонтально з обтіканням, а після натискання кнопки змінюються на вертикальне розташування без обтікання. Це корисно для створення гнучких інтерфейсів, які можуть змінювати свій вигляд відповідно до потреб користувача.

HTML

<div id="dashboard">Демонстраційний елемент</div>
<button id="toggleButton">Перемкнути</button>

JS

const dashboard = document.getElementById('dashboard');
const widgets = dashboard.children;

function toggleFlexFlow() {
  const currentFlow = dashboard.style.flexFlow;
  dashboard.style.flexFlow = currentFlow === 'row wrap' ? 'column nowrap' : 'row wrap';
}

document.getElementById('toggleButton').addEventListener('click', toggleFlexFlow);
автор: Bond

Цей приклад показує, як користувач може вибрати напрямок і обтікання для flex-контейнера за допомогою селекторів і застосувати їх за допомогою кнопки. Це дозволяє інтерактивно демонструвати роботу властивості flexFlow у реальному часі, забезпечуючи краще розуміння її поведінки та можливостей.

автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід