/
Вопросы и ответы
/
CSS
/

Как добавить css свойство в js

Как добавить css свойство в js

5 лет назад

Человек-Молекула

Ответы

2

Добавление CSS-свойства через JavaScript — это довольно простой процесс, который позволяет динамически изменять стили элементов на веб-странице. Для этого используется объект style, который предоставляет доступ к инлайновым стилям элемента. Вот основные шаги и примеры того, как это сделать.

1. Выбор элемента

Сначала нужно выбрать элемент, к которому вы хотите применить CSS-свойство. Для этого можно использовать методы, такие как getElementById, querySelector или getElementsByClassName.

Пример:

1
const element = document.getElementById('myElement');

2. Добавление или изменение свойства

После выбора элемента можно использовать объект style для добавления или изменения CSS-свойства. Свойства записываются в формате camelCase (например, background-color превращается в backgroundColor).

Пример:

1
2
element.style.backgroundColor = 'blue';
element.style.fontSize = '20px';

3. Удаление свойства

Чтобы удалить ранее добавленное CSS-свойство, можно просто присвоить ему пустую строку.

Пример:

1
element.style.backgroundColor = '';

4. Добавление нескольких стилей

Если нужно добавить сразу несколько CSS-свойств, можно использовать объект style несколько раз. Однако, для удобства, лучше использовать свойство setProperty.

Пример:

1
2
element.style.setProperty('color', 'red');
element.style.setProperty('margin', '10px');

5. Использование классов

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

Пример:

1
2
element.classList.add('new-class');
element.classList.remove('old-class');

6. Динамическое добавление стилей через JavaScript

Если вы хотите добавить стили, которые не прописаны заранее в CSS, можно создать новый <style> элемент и добавить его в документ.

Пример:

1
2
3
4
5
6
7
8
const style = document.createElement('style');
style.textContent = `
  #myElement {
    color: green;
    font-weight: bold;
  }
`;
document.head.appendChild(style);

Заключение

Добавление CSS-свойств через JavaScript позволяет гибко управлять внешним видом элементов на странице. Однако, важно помнить, что чрезмерное использование инлайновых стилей может усложнить поддержку кода. Для более сложных случаев рекомендуется использовать классы и заранее подготовленные CSS-правила.``` code text here

2 года назад

Кирилл Рыбак

1

Для того, чтобы добавить CSS свойство в JS нам на помощь могут прийти следующие возможности:

Обратиться через свойство style:

1
2
3
4
const divContainer = document.getElementById("container"); 
// находим элемент в DOM - дереве
divContainer.style.backgroundColor = "blue"; 
// устанавливаем цвет фона элемента на цвет blue

а еще можно делать так:

1
2
divContainer.style["background-color"] = "yellow"; 
// устанавливаем цвет фона на yellow

Кстати, свойство можно не только задать, но и удалить. Для этого достаточно присвоить пустую строку:

1
divContainer.style.backgroundColor = '';

Обратиться к элементу через метод setProperty():

1
divContainer.style.setProperty("background-color", "green");

Установить атрибут и свойство целиком с помощью метода setAttribute():

1
2
const divContainer = document.getElementById("container");
divContainer.setAttribute("style", "background-color: lightgray");

Документация:

4 года назад

Виктория Аблаева

0

CSS-свойство элемента меняют через объект style:

1
2
3
4
const box = document.querySelector('.box');

box.style.backgroundColor = '#0082ff';
box.style.marginTop = '20px';

Названия свойств пишут в camelCase: background-color → backgroundColor, margin-top → marginTop. Единицы измерения обязательны: box.style.width = 200 не сработает, нужно '200px'.

Свойство с дефисом или CSS-переменная

1
2
box.style.setProperty('background-color', '#0082ff');
box.style.setProperty('--accent', '#ce0094');

setProperty принимает название как в CSS. CSS-переменные меняют только так.

Несколько свойств сразу

1
2
3
4
5
Object.assign(box.style, {
  width: '200px',
  height: '100px',
  borderRadius: '8px',
});

box.style.cssText = 'width: 200px; height: 100px;' тоже работает, но затирает все прежние inline-стили элемента.

Лучше переключать класс

1
2
3
4
.box.active {
  background: #0082ff;
  color: #fff;
}

Стили остаются в CSS, а JavaScript только включает и выключает их. Так проще поддерживать код и делать анимации через transition.

Удалить свойство

1
2
box.style.removeProperty('margin-top');
box.style.marginTop = '';

Прочитать текущее значение

box.style видит только inline-стили из атрибута style. Итоговое значение с учётом CSS-файлов:

1
const width = getComputedStyle(box).width; // '200px'

Стиль не применяется

  • Селектор ничего не нашёл, и box равен null — проверьте, что скрипт запускается после загрузки разметки.
  • В CSS у свойства стоит !important. Перебить его: box.style.setProperty('color', 'red', 'important').

Работу с DOM разбирают в бесплатном курсе «Основы JavaScript».

9 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845