Как изменить стили элемента с помощью свойства Element.style в JavaScript - Smart-Frontend

Как изменить стили элемента с помощью свойства Element.style в JavaScript

Как изменить стили элемента с помощью свойства Element.style в JavaScript

Свойство Element.style в JavaScript

Свойство Element.style в JavaScript, как правило, используется только для чтения. Оно возвращает объект CSSStyleDeclaration — массив CSS-стилей элемента, а также пары (key: value) всех его стилей. Все они доступны для чтения и изменения.

<p class="element" style="background-color: yellow; color: blue;"> Hello, world! </p>
// Получаем объект CSSStyleDeclaration 
let el = document.querySelector('.element');

// Выводим в консоль объект CSSStyleDeclaration 
let elStyles = el.style;
console.log(elStyles);

Но задавать стили напрямую с помощью этого свойства — плохая практика.

elStyles.style = 'color: red; font-size: 3rem;';

Установить напрямую отдельные стили с помощью свойства Element.style и JavaScript можно, используя CamelCase.

elStyles.fontSize = '3rem'; 
elStyles.color = 'red';

Несмотря на то, что большинство современных браузеров позволяют это делать, такой подход тоже не рекомендуется.

Как правильно использовать Element.style в JavaScript

В таком случае как изменить Element.style? Лучшим вариантом является использование свойства Element.style.cssText, которое работает как Element.className, но для инлайновых стилей. Его можно применять в качестве геттера или сеттера.

В первом случае он позволяет получить все инлайновые стили элемента в формате строки. Во втором — заменит все текущие стили элемента на указанные в Element.style.cssText. Они также задаются в строковом формате.

// Получаем инлайновые стили элемента (если таковые имеются) 
let elStyles = el.style.cssText; 

// Удаляем существующие стили и заменяем их на новые 
elStyles.cssText = 'color: red; font-size: 3rem;';

Если задача состоит не в полной замене стилей, а добавлении дополнительных или замене одного конкретного стиля, то и это cssText позволяет легко реализовать через свойство Element.style и JavaScript.

// Добавляем новый инлайновый стиль к существующим 
elStyles.cssText += 'color: green;';

При наличии у элемента стилей, прописанных в CSS обычным способом, инлайновые, конечно, их «затрут».

Такой способ отлично подойдет для динамичного управления стилями элемента, например, при определенных действиях пользователя. Это позволит придать интерфейсу динамики.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *