JS метод Object.getComputedStyle()


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

Метод Window.getComputedStyle() є важливим інструментом у роботі з веб-інтерфейсами на JavaScript. Цей метод використовується для отримання значень всіх CSS-властивостей обраного елемента у вигляді об'єкта, що відображає їх кінцеві (виведені) стилі, з урахуванням всіх активних стилів, включаючи каскадні, наслідувані, та комп'ютерно-обраховані стилі. Це дає можливість точно зрозуміти та маніпулювати стилями елементів на сторінці.

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

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

  • Основи:

    let element = document.getElementById("myElement");
    let styles = window.getComputedStyle(element);
    console.log(styles.marginTop); // виводить верхній відступ елемента
    
  • Робота з псевдоелементами: Можна отримати стилі псевдоелементів, наприклад, ::before та ::after:

    let pseudoBefore = window.getComputedStyle(element, '::before');
    console.log(pseudoBefore.content); // виводить вміст псевдоелемента ::before
    
  • Динамічне використання:

    if (window.getComputedStyle(element).display === "none") {
      element.style.display = "block"; // змінює стиль, якщо елемент схований
    }
    

Загалом, Window.getComputedStyle() є потужним інструментом для детального розуміння та керування стилями елементів на веб-сторінці, що робить його незамінним у комплексному веб-розробництві.

автор: Bond

Порада

Використовуйте цей метод для отримання поточних стилів елемента, особливо коли потрібно точно знати, які стилі застосовані. Наприклад, якщо ви хочете зрозуміти, який колір фону застосований до елемента, getComputedStyle() дасть точний результат, навіть якщо цей колір визначений в каскадних таблицях стилів (CSS).

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

Пам'ятайте, що getComputedStyle() також може використовуватися для отримання стилів псевдоелементів. Просто передайте другий аргумент з вказівкою на псевдоелемент, наприклад, getComputedStyle(element, '::before').

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

Значення, повернуті getComputedStyle(), часто містять одиниці вимірювання, як-от пікселі. Ви можете перетворити ці значення у числа для подальших обчислень, використовуючи, наприклад, parseInt() або parseFloat().

автор: Bond

Синтаксис

getComputedStyle(element)
getComputedStyle(element, pseudoElt)

Параметри

element

Елемент, для якого потрібно отримати вираховані стилі. Це повинен бути об'єкт Element.

автор: Bond

pseudoElt

Рядок, який вказує псевдо-елемент, для якого потрібно отримати стилі. Якщо відсутній або null, вважається, що запит стосується реального елемента.

автор: Bond

Повернення

object

Повертає об'єкт типу CSSStyleDeclaration, який є "живим" і автоматично оновлюється при зміні стилів елемента. Цей об'єкт містить всі стилі, застосовані до елемента, включаючи ті, що визначені у внутрішніх та зовнішніх таблицях стилів CSS, а також інлайн-стилі. Значення стилів представлені у формі рядків, що дозволяє легко отримувати доступ до конкретних CSS-властивостей та їх значень.

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
1 1 3 7.2 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
- -

Приклади

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

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

HTML

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

JS

// Отримуємо посилання на елемент за його ідентифікатором
var myElement = document.getElementById('myElement');

// Використовуємо метод getComputedStyle для отримання об'єкта зі стилями елементу
var computedStyle = window.getComputedStyle(myElement);

// Отримуємо значення конкретного стилю (наприклад, ширини елементу)
var width = computedStyle.getPropertyValue('width');

// Виводимо значення в консоль
console.log('Ширина елементу: ' + width);
автор: Bond

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

HTML

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

JS

// Отримуємо посилання на елемент за його ідентифікатором
var myElement = document.getElementById('myElement');

// Отримуємо поточну ширину елементу
var computedStyle = window.getComputedStyle(myElement);
var currentWidth = computedStyle.getPropertyValue('width');

// Змінюємо ширину елементу (на приклад, збільшуємо на 50 пікселів)
var newWidth = parseInt(currentWidth) + 50;
myElement.style.width = newWidth + 'px';

// Перевіряємо, як змінилася ширина
console.log('Нова ширина елементу: ' + newWidth + 'px');
автор: Bond

У цьому прикладі ми створили додаток, який дозволяє користувачу змінювати кольори фону та тексту блоку за допомогою ползунків <input type="color">. При зміні кольорів, фон і текст блоку оновлюються, а за допомогою getComputedStyle(), ми отримуємо поточні стилі і виводимо їх в консоль, демонструючи роботу методу getComputedStyle() для отримання обчислених стилів елемента.

автор: Bond

Коментарі

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

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

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

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

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

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

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

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

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

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

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