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" використовуйте
автор: BondbackgroundColor. Це дозволяє вам безпосередньо взаємодіяти з властивістю, не зіштовхуючись із проблемами синтаксису. - Нотатка
-
Коли ви взаємодієте з властивістю
автор: Bondelement.style, ви отримуєте доступ тільки до вбудованих стилів цього елемента. Стилі, які застосовані через зовнішні CSS-файли або вбудовані стилі на рівні документа, не будуть видимі черезCSSStyleDeclaration. - Нотатка
-
Об'єкт
автор: BondCSSStyleDeclarationможе бути корисним для дебагінгу та визначення стилів, які застосовані до конкретного елемента у реальний час. Це особливо корисно, коли ви намагаєтеся визначити, чому конкретний елемент виглядає не так, як ви очікували. - Нотатка
-
Незважаючи на те, що об'єкт
автор: BondCSSStyleDeclarationдозволяє легко взаємодіяти зі стилями, рекомендується використовувати його обережно. Хоча можливість безпосередньо змінювати стилі елемента може здатися дуже зручною, часто краще додавати або видаляти класи з елемента. Це полегшує управління стилями, забезпечує більшу гнучкість та покращує продуктивність.
Синтаксис
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 | Дозволяє керувати видимістю задньої сторони елемента при його повороті в просторі. |
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
| 1 | 1 | 1 | 12.1 | 12 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 18 | 4 | 1 |
| Переглядач | ||
|---|---|---|
| 0.10.0 | 1.0 |
Приклади
+ запропонувати свій приклад у пісочниці
Допустимо, у вас є кнопка на веб-сторінці, яку користувач може натиснути для активації якогось процесу (наприклад, завантаження даних). При натисканні кнопки ви хочете змінити її кольоровий фон на зелений, показуючи, що дія була успішною.
HTML
<button id="myButton">Натисни</button>
JS
const button = document.querySelector("#myButton");
button.addEventListener("click", function() {
button.style.backgroundColor = "green";
});
Ви хочете, щоб певний текст на вашій сторінці плавно з'являвся після завантаження сторінки. Ви можете використовувати 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;
});
Ваша веб-сторінка може виглядати добре на десктопних екранах, але не оптимізована для мобільних пристроїв. Ви можете використовувати 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";
}
});
Коментарі
Коментарів ще немає — будьте першим!