JS властивість CSSStyleDeclaration.position
Загальний опис
Властивість element.style.position
визначає метод позиціонування елемента у веб-документі. Вона може приймати значення static
, relative
, absolute
, fixed
або sticky
. Від обраного значення залежить, як саме елемент буде розташований у контейнері, чи буде він прокручуватися разом зі сторінкою, та як він взаємодіятиме з іншими елементами на сторінці.
Значення властивості
static
(за замовчуванням): Елемент розташовується відповідно до нормального потоку документа. Властивостіtop
,right
,bottom
,left
не застосовуються.relative
: Елемент розташовується відповідно до нормального потоку, але можна змістити його відносно початкового положення за допомогою властивостейtop
,right
,bottom
,left
.absolute
: Елемент позиціонується відносно найближчого предка, який має позиціонування (окрімstatic
). Якщо такого предка немає, елемент позиціонується відносно сторінки.fixed
: Елемент позиціонується відносно вікна браузера і не змінює своє положення при прокручуванні сторінки.sticky
: Елемент веде себе якrelative
, поки не досягне певної точки прокручування, після чого веде себе якfixed
.
Приклад використання
// Отримання значення властивості position
const element = document.getElementById('myElement');
console.log(element.style.position); // Виведе значення властивості
// Встановлення значення властивості position
element.style.position = 'absolute';
element.style.top = '50px';
element.style.left = '100px';
У цьому прикладі ми спочатку отримуємо доступ до елемента з ідентифікатором myElement
, виводимо його поточне значення position
(якщо воно задане), а потім встановлюємо його в absolute
та зміщуємо на 50 пікселів вниз та на 100 пікселів вправо.
Застосування в реальних сценаріях
Властивість position
часто використовується для створення складних макетів, наприклад, для реалізації випадаючих меню, модальних вікон або фіксованих заголовків, які залишаються на вершині сторінки під час прокручування.
// Створення фіксованого заголовка
const header = document.getElementById('header');
header.style.position = 'fixed';
header.style.top = '0';
header.style.width = '100%';
У цьому прикладі заголовок header
буде завжди залишатися у верхній частині вікна браузера, незалежно від прокручування сторінки.
Властивість element.style.position
є ключовим інструментом для веб-розробників, що дозволяє точно контролювати розташування елементів на сторінці та створювати динамічні й інтерактивні інтерфейси користувача.
Порада: | Використання |
Порада: | Варто пам’ятати про використання значення |
Порада: | Важливо враховувати контекст використання властивості |
Синтаксис
element.style.position
Значення
Return
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
1 |
1 |
3 |
8 |
12 |
Переглядач | ||||
---|---|---|---|---|
4.4 |
18 |
4 |
1 |
Переглядач | ||
---|---|---|
- |
- |
Приклади
У цьому прикладі користувач може переміщати червоний блок по сторінці за допомогою кнопок. Блок спочатку позиціонується в центрі контейнера за допомогою position: absolute
і значень top
та left
. Кожне натискання кнопки змінює відповідну координату блоку, дозволяючи йому рухатися по сторінці. Це наочно демонструє, як можна динамічно змінювати положення елемента за допомогою властивості element.style.position
.
У цьому прикладі ми створюємо випадаюче меню, яке з'являється при натисканні на кнопку. Властивість position: absolute
дозволяє меню з'явитися прямо під кнопкою, незалежно від поточного розташування кнопки на сторінці. Це корисно для реалізації динамічних інтерфейсів користувача, де елементи повинні з'являтися в певних позиціях відносно інших елементів.
const menuButton = document.getElementById('menuButton');
const dropdownMenu = document.getElementById('dropdownMenu');
menuButton.addEventListener('click', function() {
if (dropdownMenu.style.display === 'none' || dropdownMenu.style.display === '') {
dropdownMenu.style.display = 'block';
dropdownMenu.style.position = 'absolute';
dropdownMenu.style.top = `${menuButton.offsetTop + menuButton.offsetHeight}px`;
dropdownMenu.style.left = `${menuButton.offsetLeft}px`;
} else {
dropdownMenu.style.display = 'none';
}
});
Цей приклад демонструє створення плаваючої кнопки, яка з'являється при прокручуванні сторінки вниз і дозволяє користувачеві швидко повернутися до верхньої частини сторінки. Властивість position: fixed
забезпечує, що кнопка залишається в одному і тому ж місці в нижньому правому куті вікна браузера, незалежно від прокручування сторінки. Це зручно для покращення навігації на довгих веб-сторінках.
const scrollButton = document.createElement('button');
scrollButton.innerText = 'Up';
document.body.appendChild(scrollButton);
scrollButton.style.position = 'fixed';
scrollButton.style.bottom = '20px';
scrollButton.style.right = '20px';
scrollButton.style.display = 'none';
window.addEventListener('scroll', function() {
if (window.scrollY > 100) {
scrollButton.style.display = 'block';
} else {
scrollButton.style.display = 'none';
}
});
scrollButton.addEventListener('click', function() {
window.scrollTo({ top: 0, behavior: 'smooth' });
});