JS об'єкт CSSStyleDeclaration


Об'єкт CSSStyleDeclaration у JavaScript

Об'єкт CSSStyleDeclaration у JavaScript представляє собою інтерфейс для взаємодії з вбудованими стилями конкретного DOM-елемента. Цей об'єкт зазвичай отримується через властивість element.style, де element — це посилання на DOM-елемент. Через CSSStyleDeclaration можна читати, змінювати, додавати або видаляти стилі, присвоєні елементу.

Основи взаємодії з CSSStyleDeclaration

Зчитування стилю

Кожна CSS-властивість елемента може бути доступна як властивість об'єкта CSSStyleDeclaration. Наприклад, якщо ви хочете дізнатися значення властивості "color", ви можете зробити це так:

let elem = document.getElementById('myElement');
let colorValue = elem.style.color;
console.log(colorValue);  // наприклад, "red" або "rgb(255, 0, 0)"

Зміна стилю

Щоб змінити стиль елемента, просто присвойте нове значення потрібній властивості:

elem.style.color = "blue";

Після виконання цього коду колір тексту елемента стане синім.

Додавання нового стилю

Добавлення нового стилю не відрізняється від зміни існуючого:

elem.style.fontSize = "20px";

Після цього розмір шрифта елемента стане 20 пікселів.

Особливості та рекомендації

CSS-властивості з дефісами

Якщо CSS-властивість містить дефіс, наприклад, background-color, то в JavaScript ви повинні перетворити її на camelCase стиль: backgroundColor:

elem.style.backgroundColor = "yellow";

Робота зі складними властивостями

Для властивостей, які можуть мати кілька значень, наприклад, border, ви повинні використовувати їх докладніший варіант:

elem.style.borderTopWidth = "5px";
elem.style.borderTopStyle = "solid";
elem.style.borderTopColor = "green";

Видалення стилю

Щоб видалити стиль, просто присвойте йому пусте значення:

elem.style.color = "";

Після цього властивість "color" буде видалена з вбудованого стилю елемента, і елемент буде використовувати значення з зовнішніх стилів або стилів за замовчуванням.

автор: Bond

Нотатка

При роботі з назвами CSS-властивостей у JavaScript, завжди перетворюйте їх на camelCase. Тобто, замість "background-color" використовуйте backgroundColor. Це дозволяє вам безпосередньо взаємодіяти з властивістю, не зіштовхуючись із проблемами синтаксису.

автор: Bond
Нотатка

Коли ви взаємодієте з властивістю element.style, ви отримуєте доступ тільки до вбудованих стилів цього елемента. Стилі, які застосовані через зовнішні CSS-файли або вбудовані стилі на рівні документа, не будуть видимі через CSSStyleDeclaration.

автор: Bond
Нотатка

Об'єкт CSSStyleDeclaration може бути корисним для дебагінгу та визначення стилів, які застосовані до конкретного елемента у реальний час. Це особливо корисно, коли ви намагаєтеся визначити, чому конкретний елемент виглядає не так, як ви очікували.

автор: Bond
Нотатка

Незважаючи на те, що об'єкт CSSStyleDeclaration дозволяє легко взаємодіяти зі стилями, рекомендується використовувати його обережно. Хоча можливість безпосередньо змінювати стилі елемента може здатися дуже зручною, часто краще додавати або видаляти класи з елемента. Це полегшує управління стилями, забезпечує більшу гнучкість та покращує продуктивність.

автор: Bond

Синтаксис

const styleObj = document.styleSheets[0].cssRules[0].style;

властивості

Властивість Опис
alignContent Встановлює або повертає вирівнювання елементів вздовж поперечної осі у flex-контейнері.
alignItems Вирівнює flex-елементи вздовж перпендикулярної до головної осі лінії всередині контейнера.
alignSelf Вирівнює елемент у контейнері.
animation Задає або повертає параметри анімації CSS для елемента.
animationDelay Встановлює або повертає затримку перед початком анімації елемента.
animationDirection Встановлює або повертає напрямок виконання анімації CSS елемента.
animationDuration Встановлює або повертає тривалість анімації елемента.
animationFillMode Визначає стан стилів елемента до і після анімації.
animationIterationCount Визначає кількість циклів, протягом яких анімація повинна відтворюватися.
animationName Задає назву анімації, яка має бути застосована до елемента.
animationTimingFunction Визначає швидкість анімації елемента за допомогою функції часу.
animationPlayState Керує відтворенням анімації, дозволяючи її призупиняти та відновлювати.
background Встановлює або повертає значення фонового кольору або зображення для вказаного елемента.
backgroundAttachment Встановлює або повертає, чи фонове зображення елемента буде фіксованим або прокручуватиметься разом із вмістом.
backgroundClip Визначає область, в межах якої відображається фонове зображення або колір елемента.
backgroundColor Встановлює або отримує колір фону елемента.
backgroundImage Встановлює або повертає зображення, що використовується як фонове для елемента.
backgroundOrigin Визначає початкову точку відліку для позиціонування фонового зображення елемента.
backgroundPosition Встановлює або повертає позицію фону елемента.
backgroundRepeat Визначає, як фонове зображення буде повторюватися всередині елемента.
backgroundSize Встановлює або отримує розмір фону елемента.
border Змінює або встановлює стиль рамки навколо HTML-елемента.
borderBottom Змінює або встановлює стиль нижньої рамки навколо HTML-елемента.
borderBottomColor Змінює або встановлює колір нижньої рамки навколо HTML-елемента.
borderBottomLeftRadius Встановлює або отримує радіус округлення нижнього лівого кута елемента.
borderBottomRightRadius Задає або змінює радіус закруглення нижнього правого кута елемента.
borderBottomStyle Встановлює або змінює стиль нижньої рамки HTML-елемента.
borderBottomWidth Встановлює або змінює ширину нижньої рамки HTML-елемента.
borderCollapse Встановлює або змінює спосіб відображення меж таблиці.
borderColor Змінює колір рамки навколо HTML-елемента.
borderImage Встановлює зображення як рамку навколо HTML-елемента.
borderImageOutset Визначає відступ зображення рамки від країв елемента.
borderImageRepeat Визначає спосіб повторення зображення рамки навколо елемента.
borderImageSlice Розрізає зображення рамки на частини для заповнення країв елемента.
borderImageSource Встановлює зображення для використання як рамки елемента.
borderImageWidth Встановлює джерело зображення для використання як межу елемента.
borderLeft Встановлює або повертає стиль, ширину та колір лівої межі елемента.
borderLeftColor Задає або змінює колір лівої рамки елемента.
borderLeftStyle Задає або змінює стиль лівої рамки елемента.
borderLeftWidth Задає або змінює ширину лівої рамки елемента.
borderRadius Змінює або задає радіус закруглення кутів рамки елемента.
borderRight Задає стиль, ширину та колір правої рамки елемента.
borderRightColor Змінює колір правої рамки елемента.
borderRightStyle Задає стиль правої рамки елемента.
borderRightWidth Задає ширину правої рамки елемента.
borderSpacing Встановлює відстань між кордонами суміжних комірок у таблиці.
borderStyle Встановлює стиль рамки елемента.
borderTop Встановлює або змінює стиль обведення верхньої межі елемента.
borderTopColor Встановлює або змінює колір верхньої межі елемента.
borderTopLeftRadius Змінює або встановлює радіус закруглення верхнього лівого кута елемента.
borderTopRightRadius Змінює або встановлює радіус закруглення верхнього правого кута елемента.
borderTopStyle Змінює або встановлює стиль верхнього краю рамки елемента.
borderTopWidth Встановлює ширину верхнього кордону елемента.
borderWidth Змінює ширину всіх чотирьох сторін кордону елемента.
bottom Задає відстань від нижнього краю елемента до нижнього краю його контейнера.
boxShadow Задає тінь для рамки елемента.
boxSizing Визначає, як враховуються відступи та рамки при обчисленні загальної ширини і висоти елемента.
captionSide Встановлює розташування підпису таблиці відносно її тіла.
caretColor Встановлює колір текстового курсора в елементі.
clear Встановлює чи змінює властивість очищення плаваючих елементів навколо елемента.
clip Встановлює або змінює область, видиму вмісту елемента, обрізаючи його.
color Встановлює або змінює колір тексту всередині елемента.
columnCount Встановлює або змінює кількість колонок для багатоколонкового макету елемента.
columnFill Визначає, як вміст розподіляється між колонками багатоколонкового макету.
columnGap Встановлює відстань між колонками у багатоколонковому макеті елемента.
columnRule Встановлює стиль, товщину та колір лінії між колонками у багатоколонковому макеті.
columnRuleColor Встановлює колір лінії, що розділяє колонки у багатоколонковому макеті.
columnRuleStyle Визначає стиль лінії, яка розділяє колонки у багатоколонковому макеті.
columnRuleWidth Встановлює ширину лінії, яка розділяє колонки у багатоколонковому макеті.
columns Розділяє контент на колонки для багатоколонкового макету.
columnSpan Об'єднує елемент на всі колонки у багатоколонковому макеті.
columnWidth Встановлює ширину колонок у багатоколонковому макеті.
counterIncrement Збільшує значення лічильника елементу у CSS.
counterReset Скидає значення лічильника елементу у CSS.
cssFloat Вирівнює елемент за допомогою плаваючих властивостей CSS.
cursor Змінює вигляд курсора під час наведення на елемент.
direction Задає напрямок тексту в елементі: зліва направо або справа наліво.
display Змінює видимість HTML-елемента, вказуючи, чи він відображається на сторінці.
emptyCells Відображає або приховує межі порожніх комірок у таблицях.
filter Застосовує візуальні ефекти до елементів, такі як розмиття, яскравість або контраст.
flex Задає, як елемент буде рости або скорочуватися всередині контейнера flex.
flexBasis Встановлює або повертає початковий розмір гнучкого елемента в контейнері flex.
flexDirection Визначає напрямок розташування гнучких елементів у контейнері Flexbox.
flexFlow Встановлює або повертає значення властивостей напрямку та обтікання flex-контейнера.
flexGrow Встановлює або повертає, як гнучкий елемент збільшується відносно інших.
flexShrink Визначає, наскільки елемент може зменшуватись відносно інших елементів у контейнері flexbox.
flexWrap Контролює перенесення елементів у флекс-контейнері на новий рядок, якщо місця недостатньо.
font Встановлює всі шрифтові властивості елемента в один рядок.
fontFamily Задає або повертає сімейство шрифтів для тексту елемента.
fontSize Змінює розмір шрифту для конкретного HTML-елемента.
fontStyle Змінює стиль шрифту елемента на нормальний, курсивний або похилий.
fontVariant Змінює вигляд тексту елементу, використовуючи різні варіанти шрифтів.
fontWeight Змінює товщину шрифту тексту елементу.
fontSizeAdjust Змінює розмір шрифту для покращення читабельності при різних типах шрифтів.
height Задає або змінює висоту елемента на вебсторінці.
isolation Задає режим ізоляції для запобігання змішуванню елементів із контекстом складання.
justifyContent Вирівнює та розподіляє простір між або навколо вмісту контейнера по головній осі.
left Встановлює або отримує значення відступу елемента від лівого краю контейнера.
letterSpacing Змінює або отримує відстань між символами в тексті елемента.
lineHeight Задає або повертає висоту рядка тексту в межах елемента.
listStyle Задає або повертає стиль маркерів у списках HTML-елемента.
listStyleImage Задає зображення, яке використовується як маркер для елементів списку.
listStylePosition Визначає розташування маркерів списку відносно тексту елементів списку.
listStyleType Визначає вигляд маркерів у списку, таких як круг, квадрат або число.
margin Встановлює або отримує відступи елемента від його зовнішніх меж.
marginBottom Встановлює або отримує нижній відступ елемента від його зовнішніх меж.
marginLeft Змінює відступ зліва для вибраного HTML-елемента.
marginRight Змінює відступ справа для вибраного HTML-елемента.
marginTop Змінює відступ зверху для вибраного HTML-елемента.
maxHeight Встановлює максимальну висоту для вибраного HTML-елемента.
maxWidth Встановлює максимальну ширину для вибраного HTML-елемента.
minHeight Встановлює мінімальну висоту для вибраного HTML-елемента.
minWidth Встановлює мінімальну ширину для вибраного HTML-елемента.
objectFit Визначає, як вміст елемента змінює розмір та розташовується всередині контейнера.
objectPosition Визначає початкову позицію вмісту всередині контейнера.
opacity Встановлює прозорість HTML елемента.
order Встановлює порядок розташування гнучких елементів у контейнері flex.
orphans Встановлює мінімальну кількість рядків тексту, які залишаються на сторінці при розбитті.
outline Встановлює обведення навколо елемента без впливу на розмір і положення.
outlineColor Змінює колір рамки навколо HTML-елемента.
outlineOffset Зміщує контур елемента від його меж назовні, не впливаючи на розмір або положення.
outlineStyle Задає стиль рамки навколо HTML-елемента.
outlineWidth Задає товщину рамки навколо HTML-елемента.
overflow Встановлює або повертає, як обробляти переповнення вмісту елемента в блоці.
overflowX Керує горизонтальним переповненням вмісту елемента.
overflowY Керує вертикальним переповненням вмісту елемента.
padding Задає внутрішні відступи для HTML-елемента.
paddingBottom Задає нижній внутрішній відступ для HTML-елемента.
paddingLeft Задає лівий внутрішній відступ для HTML-елемента.
paddingRight Задає правий внутрішній відступ для HTML-елемента.
paddingTop Задає верхній внутрішній відступ для HTML-елемента.
pageBreakAfter Встановлює чи відміняє розрив сторінки після певного елемента під час друку.
pageBreakBefore Встановлює чи відміняє розрив сторінки перед певним елементом під час друку.
pageBreakInside Контролює, чи допускається розрив сторінки всередині певного елемента під час друку.
perspective Встановлює глибину перспективи 3D-простору для елемента, створюючи ефект тривимірності.
perspectiveOrigin Визначає початкову точку перспективи для 3D-трансформацій відносно елемента.
position Встановлює або повертає тип позиціонування елемента на веб-сторінці.
quotes Встановлює або повертає стиль лапок для вбудованих цитат у елементі.
resize Дозволяє змінювати розміри елемента користувачем в заданих напрямках.
right Встановлює або повертає правий відступ елемента від його найближчого розташованого предка.
scrollBehavior Встановлює плавність прокручування в межах елемента при навігації або зміщенні.
tableLayout Встановлює або повертає макет таблиці для елемента.
tabSize Встановлює або повертає ширину символу табуляції в елементі.
textAlign Вирівнює текст всередині елемента по лівому, правому краю, центру або ширині.
textAlignLast Вирівнює останній рядок тексту в блоці при використанні властивості "justify".
textDecoration Дозволяє отримати або змінити стиль оформлення тексту елемента.
textDecorationColor Задає колір оформлення тексту елемента.
textDecorationLine Визначає тип лінії для оформлення тексту елемента.
textDecorationStyle Визначає стиль лінії декорації тексту, як-от суцільний чи пунктирний.
textIndent Встановлює або повертає величину відступу першого рядка тексту всередині елемента.
textOverflow Встановлює або повертає спосіб обробки переповнення тексту в елементі.
textShadow Додає тінь до тексту всередині елемента, дозволяючи налаштувати її вигляд.
textTransform Перетворює текст всередині елемента в верхній, нижній регістр або капіталізує його.
top Встановлює вертикальну позицію елемента відносно його батьківського контейнера.
transform Змінює розташування, обертання, масштаб або нахил елемента.
transformOrigin Встановлює точку, навколо якої застосовуються трансформації елемента.
transformStyle Визначає, як дочірні елементи будуть відображатися в 3D-просторі.
transition Забезпечує плавний перехід між різними стилями елемента протягом заданого часу.
transitionProperty Визначає, які CSS-властивості будуть анімовані під час переходу.
transitionDuration Визначає тривалість часу для анімації CSS-переходу на елементі.
transitionTimingFunction Визначає швидкість зміни CSS-властивостей під час анімації переходу.
transitionDelay Встановлює затримку перед початком анімації CSS-переходу на елементі.
unicodeBidi Змінює порядок відображення тексту для підтримки двонаправленого тексту.
userSelect Забороняє або дозволяє користувачам виділяти текст в елементі.
verticalAlign Вирівнює елемент по вертикалі відносно його батьківського контейнера.
visibility Контролює видимість елемента без зміни його розташування на сторінці.
width Задає або змінює ширину елемента на веб-сторінці.
wordBreak Керує тим, як слова переносяться на новий рядок у тексті елемента.
wordSpacing Задає або змінює проміжок між словами в тексті елемента.
wordWrap Дозволяє переносити довгі слова на новий рядок для уникнення виходу за межі контейнера.
widows Задає мінімальну кількість рядків у блоці, які повинні залишатися на сторінці або в колонці.
zIndex Визначає порядок накладання елементів уздовж осі z (глибина) на веб-сторінці.
backfaceVisibility Дозволяє керувати видимістю задньої сторони елемента при його повороті в просторі.

Переглядачі

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

Приклади

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

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

HTML

<button id="myButton">Натисни</button>

JS

const button = document.querySelector("#myButton");
button.addEventListener("click", function() {
    button.style.backgroundColor = "green";
});
автор: Bond

Ви хочете, щоб певний текст на вашій сторінці плавно з'являвся після завантаження сторінки. Ви можете використовувати CSSStyleDeclaration для динамічного додавання стилів, які роблять це можливим.

HTML

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

JS

const textElement = document.querySelector("#fadeInText");
textElement.style.transition = "opacity 2s";
textElement.style.opacity = 0;

window.addEventListener("load", function() {
    textElement.style.opacity = 1;
});
автор: Bond

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

У цьому прикладі, якщо ширина екрану менше 600 пікселів, головне меню приховується. Це допомагає забезпечити кращий досвід користувача на мобільних пристроях.

HTML

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

JS

const nav = document.querySelector("#mainNav");
window.addEventListener("resize", function() {
    if (window.innerWidth < 600) {
        nav.style.display = "none";
    } else {
        nav.style.display = "block";
    }
});
автор: Bond

Коментарі

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

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

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

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

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

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

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

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

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

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

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