JS властивість CSSStyleDeclaration.flexWrap
Загальний опис
element.style.flexWrap - це властивість, яка визначає, чи будуть flex-елементи переноситись на новий рядок/стовпчик у flex-контейнері або залишатись в одному рядку/стовпчику. Вона є частиною моделі flexbox у CSS і дозволяє контролювати, як елементи будуть обтікати всередині контейнера.
Властивість flexWrap має три основні значення:
nowrap- елементи не переносяться на новий рядок/стовпчик, а залишаються в одному, незалежно від їх кількості та розміру.wrap- елементи переносяться на новий рядок/стовпчик, коли це необхідно, щоб відповідати розміру контейнера.wrap-reverse- елементи також переносяться на новий рядок/стовпчик, але в зворотному порядку.
Для того, щоб змінити або отримати значення властивості flexWrap у JavaScript, ви можете використовувати element.style.flexWrap. Це дозволяє динамічно змінювати поведінку flex-елементів.
Приклад використання
// Отримуємо доступ до контейнера з id "flexContainer"
var container = document.getElementById("flexContainer");
// Встановлюємо значення flexWrap для контейнера
container.style.flexWrap = "wrap";
// Отримуємо значення flexWrap для контейнера
var flexWrapValue = container.style.flexWrap;
console.log(flexWrapValue); // Виведе "wrap"
У цьому прикладі ми спочатку отримуємо доступ до елемента з id flexContainer, потім встановлюємо значення flexWrap на wrap. Це означає, що flex-елементи всередині контейнера будуть переноситись на новий рядок/стовпчик, коли не вистачає місця. Потім ми отримуємо значення flexWrap і виводимо його в консоль.
Властивість element.style.flexWrap є важливим інструментом для керування тим, як flex-елементи поводяться всередині контейнера. Використовуючи цю властивість, ви можете контролювати, чи будуть елементи переноситись на новий рядок/стовпчик, що забезпечує гнучкість і адаптивність макета вашої веб-сторінки. Це особливо корисно для створення респонсивного дизайну, де важливо, щоб вміст адаптувався до різних розмірів екранів та пристроїв.
- Порада
-
Змінення
автор: BondflexWrapвпливає тільки на елементи, які є дочірніми елементами контейнера з дисплеєм flex (встановленим черезdisplay: flex). Використання властивості на елементі, який не є flex-контейнером, не матиме ніякого ефекту. - Нотатка
-
Значення
автор: BondflexWrapможе бути тільки одним із трьох вказаних:nowrap,wrap,wrap-reverse. Встановлення некоректних значень призведе до того, що браузер проігнорує цю властивість. - Нотатка
-
Якщо
автор: BondflexWrapне встановлено, використовується значення за замовчуванням, яке дорівнюєnowrap.
Синтаксис
element.style.flexWrap
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| 29 | 28 | 9 | 16 | 12 | 11* |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 29 | 28 | 9 |
Приклади
+ запропонувати свій приклад у пісочниці
HTML
<div class="gallery">перший елемент gallery</div>
<div class="gallery">другий елемент gallery</div>
JS
const gallery = document.querySelector('.gallery');
gallery.style.display = 'flex';
gallery.style.flexWrap = 'wrap';
// Додаємо кілька зображень до галереї
for (let i = 1; i <= 10; i++) {
const img = document.createElement('img');
img.src = photo(i);
img.style.flex = '1 1 150px';
img.style.margin = '10px';
gallery.appendChild(img);
}
// — службове: замість чужих фотографій картинки збираються просто тут —
function photo(n) {
const svg = `<svg xmlns='http://www.w3.org/2000/svg' width='150' height='150'>`
+ `<rect width='150' height='150' fill='hsl(${n * 36} 65%25 55%25)'/>`
+ `<text x='75' y='97' font-size='64' text-anchor='middle' fill='%23fff'>${n}</text></svg>`;
return `data:image/svg+xml,${svg}`;
}
Цей приклад показує, як можна використовувати властивість flexWrap для створення меню навігації, яке автоматично переходить на новий рядок при недостатньому просторі, забезпечуючи зручність користування на різних пристроях.
HTML
<div class="nav">перший елемент nav</div>
<div class="nav">другий елемент nav</div>
JS
const nav = document.querySelector('.nav');
nav.style.display = 'flex';
nav.style.flexWrap = 'wrap';
// Додаємо кілька елементів навігації
const items = ['Home', 'About', 'Services', 'Portfolio', 'Contact'];
items.forEach(item => {
const navItem = document.createElement('div');
navItem.textContent = item;
navItem.style.flex = '1 1 auto';
navItem.style.padding = '10px';
navItem.style.boxSizing = 'border-box';
navItem.style.textAlign = 'center';
nav.appendChild(navItem);
});
HTML
<header>
<h2 class="title">element.style.flexWrap</h2>
<p class="description">Контролює перенесення елементів у флекс-контейнері на новий рядок, якщо місця недостатньо.</p>
</header>
<main>
<div class="result">
<div class="gallery" id="gallery">
<!-- Додаємо кілька зображень для демонстрації -->
<img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150' viewBox='0 0 40 40' preserveAspectRatio='none'%3E%3Crect width='40' height='40' fill='%23264653'/%3E%3Cpath d='M0 40 12 18 22 30 30 22 40 40Z' fill='%232a9d8f'/%3E%3Ccircle cx='30' cy='9' r='5' fill='%23e9c46a'/%3E%3C/svg%3E" width="150" height="150" alt="Зразок" class="item">
<img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150' viewBox='0 0 40 40' preserveAspectRatio='none'%3E%3Crect width='40' height='40' fill='%23264653'/%3E%3Cpath d='M0 40 12 18 22 30 30 22 40 40Z' fill='%232a9d8f'/%3E%3Ccircle cx='30' cy='9' r='5' fill='%23e9c46a'/%3E%3C/svg%3E" width="150" height="150" alt="Зразок" class="item">
<img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150' viewBox='0 0 40 40' preserveAspectRatio='none'%3E%3Crect width='40' height='40' fill='%23264653'/%3E%3Cpath d='M0 40 12 18 22 30 30 22 40 40Z' fill='%232a9d8f'/%3E%3Ccircle cx='30' cy='9' r='5' fill='%23e9c46a'/%3E%3C/svg%3E" width="150" height="150" alt="Зразок" class="item">
<img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150' viewBox='0 0 40 40' preserveAspectRatio='none'%3E%3Crect width='40' height='40' fill='%23264653'/%3E%3Cpath d='M0 40 12 18 22 30 30 22 40 40Z' fill='%232a9d8f'/%3E%3Ccircle cx='30' cy='9' r='5' fill='%23e9c46a'/%3E%3C/svg%3E" width="150" height="150" alt="Зразок" class="item">
<img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150' viewBox='0 0 40 40' preserveAspectRatio='none'%3E%3Crect width='40' height='40' fill='%23264653'/%3E%3Cpath d='M0 40 12 18 22 30 30 22 40 40Z' fill='%232a9d8f'/%3E%3Ccircle cx='30' cy='9' r='5' fill='%23e9c46a'/%3E%3C/svg%3E" width="150" height="150" alt="Зразок" class="item">
<img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150' viewBox='0 0 40 40' preserveAspectRatio='none'%3E%3Crect width='40' height='40' fill='%23264653'/%3E%3Cpath d='M0 40 12 18 22 30 30 22 40 40Z' fill='%232a9d8f'/%3E%3Ccircle cx='30' cy='9' r='5' fill='%23e9c46a'/%3E%3C/svg%3E" width="150" height="150" alt="Зразок" class="item">
</div>
<div class="controls">
<label for="flexWrap">Виберіть flexWrap:</label>
<select id="flexWrap" onchange="updateFlexWrap()">
<option value="nowrap">nowrap</option>
<option value="wrap">wrap</option>
<option value="wrap-reverse">wrap-reverse</option>
</select>
</div>
</div>
</main>
CSS
body {
font-size: 16px;
line-height: 1.5;
font-family: monospace;
}
header {
background-color: #f1f1f1;
margin-bottom: 25px;
padding: 15px;
-webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
-moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
header h2.title {
padding-bottom: 15px;
border-bottom: 1px solid #999;
}
header p.description {
font-style: italic;
color: #222;
}
.result {
background-color: #f8f8f8;
padding: 15px;
-webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
-moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
.gallery {
display: flex;
border: 1px solid #ccc;
padding: 10px;
margin-bottom: 20px;
}
.item {
flex: 1 1 150px;
margin: 10px;
}
.controls {
margin-top: 15px;
}
JS
function updateFlexWrap() {
const gallery = document.getElementById('gallery');
const flexWrapValue = document.getElementById('flexWrap').value;
gallery.style.flexWrap = flexWrapValue;
}
// Початкове налаштування
updateFlexWrap();
//# sourceURL=pen.js
Коментарі
Коментарів ще немає — будьте першим!