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" буде видалена з вбудованого стилю елемента, і елемент буде використовувати значення з зовнішніх стилів або стилів за замовчуванням.
| Нотатка: | При роботі з назвами CSS-властивостей у JavaScript, завжди перетворюйте їх на camelCase. Тобто, замість "background-color" використовуйте |
| Нотатка: | Коли ви взаємодієте з властивістю |
| Нотатка: | Об'єкт |
| Нотатка: | Незважаючи на те, що об'єкт |
Синтаксис
const styleObj = document.styleSheets[0].cssRules[0].style;
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
1 |
1 |
1 |
12.1 |
12 |
| Переглядач | ||||
|---|---|---|---|---|
4.4 |
18 |
4 |
1 |
| Переглядач | ||
|---|---|---|
0.10.0 |
1.0 |
Приклади
Ви хочете, щоб певний текст на вашій сторінці плавно з'являвся після завантаження сторінки. Ви можете використовувати CSSStyleDeclaration для динамічного додавання стилів, які роблять це можливим.
const textElement = document.querySelector("#fadeInText");
textElement.style.transition = "opacity 2s";
textElement.style.opacity = 0;
window.addEventListener("load", function() {
textElement.style.opacity = 1;
});
Ваша веб-сторінка може виглядати добре на десктопних екранах, але не оптимізована для мобільних пристроїв. Ви можете використовувати JavaScript для динамічної зміни стилів відповідно до розміру екрану.
У цьому прикладі, якщо ширина екрану менше 600 пікселів, головне меню приховується. Це допомагає забезпечити кращий досвід користувача на мобільних пристроях.
const nav = document.querySelector("#mainNav");
window.addEventListener("resize", function() {
if (window.innerWidth < 600) {
nav.style.display = "none";
} else {
nav.style.display = "block";
}
});
Допустимо, у вас є кнопка на веб-сторінці, яку користувач може натиснути для активації якогось процесу (наприклад, завантаження даних). При натисканні кнопки ви хочете змінити її кольоровий фон на зелений, показуючи, що дія була успішною.
const button = document.querySelector("#myButton");
button.addEventListener("click", function() {
button.style.backgroundColor = "green";
});
Методи
Властивості
borderLeftWidth- Задає або змінює ширину лівої рамки елемента.
borderBottomColor- Змінює або встановлює колір нижньої рамки навколо HTML-елемента.
animationTimingFunction- Визначає швидкість анімації елемента за допомогою функції часу.
borderRightStyle- Задає стиль правої рамки елемента.
borderTop- Встановлює або змінює стиль обведення верхньої межі елемента.
textDecorationLine- Визначає тип лінії для оформлення тексту елемента.
backgroundSize- Встановлює або отримує розмір фону елемента.
alignSelf- Вирівнює елемент у контейнері.
animationDuration- Встановлює або повертає тривалість анімації елемента.
backgroundPosition- Встановлює або повертає позицію фону елемента.
borderTopStyle- Змінює або встановлює стиль верхнього краю рамки елемента.
backgroundClip- Визначає область, в межах якої відображається фонове зображення або колір елемента.
borderBottomWidth- Встановлює або змінює ширину нижньої рамки HTML-елемента.
borderImageOutset- Визначає відступ зображення рамки від країв елемента.
boxSizing- Визначає, як враховуються відступи та рамки при обчисленні загальної ширини і висоти елемента.
borderImageWidth- Встановлює джерело зображення для використання як межу елемента.
clear- Встановлює чи змінює властивість очищення плаваючих елементів навколо елемента.
columnRuleStyle- Визначає стиль лінії, яка розділяє колонки у багатоколонковому макеті.
columnWidth- Встановлює ширину колонок у багатоколонковому макеті.
cursor- Змінює вигляд курсора під час наведення на елемент.
fontVariant- Змінює вигляд тексту елементу, використовуючи різні варіанти шрифтів.
isolation- Задає режим ізоляції для запобігання змішуванню елементів із контекстом складання.
flexFlow- Встановлює або повертає значення властивостей напрямку та обтікання flex-контейнера.
font- Встановлює всі шрифтові властивості елемента в один рядок.
columnFill- Визначає, як вміст розподіляється між колонками багатоколонкового макету.
listStyleType- Визначає вигляд маркерів у списку, таких як круг, квадрат або число.
filter- Застосовує візуальні ефекти до елементів, такі як розмиття, яскравість або контраст.
minHeight- Встановлює мінімальну висоту для вибраного HTML-елемента.
lineHeight- Задає або повертає висоту рядка тексту в межах елемента.
outlineColor- Змінює колір рамки навколо HTML-елемента.
marginRight- Змінює відступ справа для вибраного HTML-елемента.
overflow- Встановлює або повертає, як обробляти переповнення вмісту елемента в блоці.
pageBreakAfter- Встановлює чи відміняє розрив сторінки після певного елемента під час друку.
perspectiveOrigin- Визначає початкову точку перспективи для 3D-трансформацій відносно елемента.
opacity- Встановлює прозорість HTML елемента.
paddingBottom- Задає нижній внутрішній відступ для HTML-елемента.
textAlignLast- Вирівнює останній рядок тексту в блоці при використанні властивості "justify".
tableLayout- Встановлює або повертає макет таблиці для елемента.
right- Встановлює або повертає правий відступ елемента від його найближчого розташованого предка.
borderBottomLeftRadius- Встановлює або отримує радіус округлення нижнього лівого кута елемента.
top- Встановлює вертикальну позицію елемента відносно його батьківського контейнера.
transform- Змінює розташування, обертання, масштаб або нахил елемента.
animationFillMode- Визначає стан стилів елемента до і після анімації.
backgroundColor- Встановлює або отримує колір фону елемента.
fontWeight- Змінює товщину шрифту тексту елементу.
animation- Задає або повертає параметри анімації CSS для елемента.
flexGrow- Встановлює або повертає, як гнучкий елемент збільшується відносно інших.
backgroundRepeat- Визначає, як фонове зображення буде повторюватися всередині елемента.
borderCollapse- Встановлює або змінює спосіб відображення меж таблиці.
borderImageRepeat- Визначає спосіб повторення зображення рамки навколо елемента.
borderLeft- Встановлює або повертає стиль, ширину та колір лівої межі елемента.
borderRadius- Змінює або задає радіус закруглення кутів рамки елемента.
borderRightWidth- Задає ширину правої рамки елемента.
borderTopColor- Встановлює або змінює колір верхньої межі елемента.
borderTopWidth- Встановлює ширину верхнього кордону елемента.
animationPlayState- Керує відтворенням анімації, дозволяючи її призупиняти та відновлювати.
clip- Встановлює або змінює область, видиму вмісту елемента, обрізаючи його.
columnGap- Встановлює відстань між колонками у багатоколонковому макеті елемента.
columnRuleWidth- Встановлює ширину лінії, яка розділяє колонки у багатоколонковому макеті.
justifyContent- Вирівнює та розподіляє простір між або навколо вмісту контейнера по головній осі.
counterIncrement- Збільшує значення лічильника елементу у CSS.
flex- Задає, як елемент буде рости або скорочуватися всередині контейнера flex.
fontFamily- Задає або повертає сімейство шрифтів для тексту елемента.
captionSide- Встановлює розташування підпису таблиці відносно її тіла.
direction- Задає напрямок тексту в елементі: зліва направо або справа наліво.
marginTop- Змінює відступ зверху для вибраного HTML-елемента.
minWidth- Встановлює мінімальну ширину для вибраного HTML-елемента.
listStyle- Задає або повертає стиль маркерів у списках HTML-елемента.
outlineOffset- Зміщує контур елемента від його меж назовні, не впливаючи на розмір або положення.
overflowX- Керує горизонтальним переповненням вмісту елемента.
margin- Встановлює або отримує відступи елемента від його зовнішніх меж.
pageBreakBefore- Встановлює чи відміняє розрив сторінки перед певним елементом під час друку.
position- Встановлює або повертає тип позиціонування елемента на веб-сторінці.
order- Встановлює порядок розташування гнучких елементів у контейнері flex.
paddingLeft- Задає лівий внутрішній відступ для HTML-елемента.
transitionTimingFunction- Визначає швидкість зміни CSS-властивостей під час анімації переходу.
textAlign- Вирівнює текст всередині елемента по лівому, правому краю, центру або ширині.
transformOrigin- Встановлює точку, навколо якої застосовуються трансформації елемента.
transformStyle- Визначає, як дочірні елементи будуть відображатися в 3D-просторі.
textOverflow- Встановлює або повертає спосіб обробки переповнення тексту в елементі.
textIndent- Встановлює або повертає величину відступу першого рядка тексту всередині елемента.
textDecorationColor- Задає колір оформлення тексту елемента.
textShadow- Додає тінь до тексту всередині елемента, дозволяючи налаштувати її вигляд.
transition- Забезпечує плавний перехід між різними стилями елемента протягом заданого часу.
transitionProperty- Визначає, які CSS-властивості будуть анімовані під час переходу.
transitionDuration- Визначає тривалість часу для анімації CSS-переходу на елементі.
scrollBehavior- Встановлює плавність прокручування в межах елемента при навігації або зміщенні.
unicodeBidi- Змінює порядок відображення тексту для підтримки двонаправленого тексту.
transitionDelay- Встановлює затримку перед початком анімації CSS-переходу на елементі.
textTransform- Перетворює текст всередині елемента в верхній, нижній регістр або капіталізує його.
textDecoration- Дозволяє отримати або змінити стиль оформлення тексту елемента.
borderImageSlice- Розрізає зображення рамки на частини для заповнення країв елемента.
borderRight- Задає стиль, ширину та колір правої рамки елемента.
borderSpacing- Встановлює відстань між кордонами суміжних комірок у таблиці.
quotes- Встановлює або повертає стиль лапок для вбудованих цитат у елементі.
background- Встановлює або повертає значення фонового кольору або зображення для вказаного елемента.
alignContent- Встановлює або повертає вирівнювання елементів вздовж поперечної осі у flex-контейнері.
backgroundImage- Встановлює або повертає зображення, що використовується як фонове для елемента.
animationDelay- Встановлює або повертає затримку перед початком анімації елемента.
borderBottomRightRadius- Задає або змінює радіус закруглення нижнього правого кута елемента.
borderTopLeftRadius- Змінює або встановлює радіус закруглення верхнього лівого кута елемента.
borderColor- Змінює колір рамки навколо HTML-елемента.
borderLeftColor- Задає або змінює колір лівої рамки елемента.
borderWidth- Змінює ширину всіх чотирьох сторін кордону елемента.
animationIterationCount- Визначає кількість циклів, протягом яких анімація повинна відтворюватися.
color- Встановлює або змінює колір тексту всередині елемента.
columnRule- Встановлює стиль, товщину та колір лінії між колонками у багатоколонковому макеті.
columns- Розділяє контент на колонки для багатоколонкового макету.
counterReset- Скидає значення лічильника елементу у CSS.
fontSize- Змінює розмір шрифту для конкретного HTML-елемента.
border- Змінює або встановлює стиль рамки навколо HTML-елемента.
fontSizeAdjust- Змінює розмір шрифту для покращення читабельності при різних типах шрифтів.
flexShrink- Визначає, наскільки елемент може зменшуватись відносно інших елементів у контейнері flexbox.
caretColor- Встановлює колір текстового курсора в елементі.
flexBasis- Встановлює або повертає початковий розмір гнучкого елемента в контейнері flex.
listStyleImage- Задає зображення, яке використовується як маркер для елементів списку.
display- Змінює видимість HTML-елемента, вказуючи, чи він відображається на сторінці.
maxHeight- Встановлює максимальну висоту для вибраного HTML-елемента.
left- Встановлює або отримує значення відступу елемента від лівого краю контейнера.
outlineStyle- Задає стиль рамки навколо HTML-елемента.
orphans- Встановлює мінімальну кількість рядків тексту, які залишаються на сторінці при розбитті.
overflowY- Керує вертикальним переповненням вмісту елемента.
marginBottom- Встановлює або отримує нижній відступ елемента від його зовнішніх меж.
objectFit- Визначає, як вміст елемента змінює розмір та розташовується всередині контейнера.
paddingRight- Задає правий внутрішній відступ для HTML-елемента.
tabSize- Встановлює або повертає ширину символу табуляції в елементі.
borderStyle- Встановлює стиль рамки елемента.
bottom- Задає відстань від нижнього краю елемента до нижнього краю його контейнера.
resize- Дозволяє змінювати розміри елемента користувачем в заданих напрямках.
alignItems- Вирівнює flex-елементи вздовж перпендикулярної до головної осі лінії всередині контейнера.
animationDirection- Встановлює або повертає напрямок виконання анімації CSS елемента.
backgroundOrigin- Визначає початкову точку відліку для позиціонування фонового зображення елемента.
backgroundAttachment- Встановлює або повертає, чи фонове зображення елемента буде фіксованим або прокручуватиметься разом із вмістом.
borderImage- Встановлює зображення як рамку навколо HTML-елемента.
borderBottomStyle- Встановлює або змінює стиль нижньої рамки HTML-елемента.
borderLeftStyle- Задає або змінює стиль лівої рамки елемента.
animationName- Задає назву анімації, яка має бути застосована до елемента.
borderRightColor- Змінює колір правої рамки елемента.
boxShadow- Задає тінь для рамки елемента.
borderImageSource- Встановлює зображення для використання як рамки елемента.
columnRuleColor- Встановлює колір лінії, що розділяє колонки у багатоколонковому макеті.
columnSpan- Об'єднує елемент на всі колонки у багатоколонковому макеті.
columnCount- Встановлює або змінює кількість колонок для багатоколонкового макету елемента.
cssFloat- Вирівнює елемент за допомогою плаваючих властивостей CSS.
borderBottom- Змінює або встановлює стиль нижньої рамки навколо HTML-елемента.
emptyCells- Відображає або приховує межі порожніх комірок у таблицях.
flexDirection- Визначає напрямок розташування гнучких елементів у контейнері Flexbox.
flexWrap- Контролює перенесення елементів у флекс-контейнері на новий рядок, якщо місця недостатньо.
fontStyle- Змінює стиль шрифту елемента на нормальний, курсивний або похилий.
listStylePosition- Визначає розташування маркерів списку відносно тексту елементів списку.
height- Задає або змінює висоту елемента на вебсторінці.
maxWidth- Встановлює максимальну ширину для вибраного HTML-елемента.
letterSpacing- Змінює або отримує відстань між символами в тексті елемента.
objectPosition- Визначає початкову позицію вмісту всередині контейнера.
marginLeft- Змінює відступ зліва для вибраного HTML-елемента.
outlineWidth- Задає товщину рамки навколо HTML-елемента.
perspective- Встановлює глибину перспективи 3D-простору для елемента, створюючи ефект тривимірності.
paddingTop- Задає верхній внутрішній відступ для HTML-елемента.
outline- Встановлює обведення навколо елемента без впливу на розмір і положення.
padding- Задає внутрішні відступи для HTML-елемента.
zIndex- Визначає порядок накладання елементів уздовж осі z (глибина) на веб-сторінці.
wordWrap- Дозволяє переносити довгі слова на новий рядок для уникнення виходу за межі контейнера.
widows- Задає мінімальну кількість рядків у блоці, які повинні залишатися на сторінці або в колонці.
userSelect- Забороняє або дозволяє користувачам виділяти текст в елементі.
verticalAlign- Вирівнює елемент по вертикалі відносно його батьківського контейнера.
visibility- Контролює видимість елемента без зміни його розташування на сторінці.
width- Задає або змінює ширину елемента на веб-сторінці.
wordBreak- Керує тим, як слова переносяться на новий рядок у тексті елемента.
wordSpacing- Задає або змінює проміжок між словами в тексті елемента.
textDecorationStyle- Визначає стиль лінії декорації тексту, як-от суцільний чи пунктирний.
pageBreakInside- Контролює, чи допускається розрив сторінки всередині певного елемента під час друку.
borderTopRightRadius- Змінює або встановлює радіус закруглення верхнього правого кута елемента.
backfaceVisibility- Дозволяє керувати видимістю задньої сторони елемента при його повороті в просторі.
