@thekunichka

Изменение CSS стилей элемента в JS?

В 2015 году изменять стили напрямую через JavaScript считалось некорректным способом, все рекомендовали изменять стили элемента путём добавления дополнительного CSS класса с уже заданными стилями. По причине того, что при обращении к элементу в JS и изменении стилей методом style DOM дерево полностью перерисовывается.

Так вот на сегодняшний день в 2023-ем году что-то изменилось? Я всё по прежнему должен создавать дополнительный класс или же устанавливать атрибут со стилями, даже когда я меняю 1-2 стиля?
  • Вопрос задан
  • 273 просмотра
Решения вопроса 1
@iljaGolubev
Ничего не изменилось: вы по-прежнему можете изменять стили напрямую у элемента.
при обращении к элементу в JS и изменении стилей методом style DOM дерево
Не скажу как раньше было, но и сейчас при неудачной вёрстке можно вызвать reflow для всего документа даже при применении класса. Изменение шрифта и так и так заставит браузер что-то пересчитать.
Другое дело, что сейчас есть техники позволяющие минимизировать вычисления: сказать браузеру, что пересчитывать нужно только определённую часть (утрирую).

Есть tailwindcss с новым (по отношению к 2015 году) подходом - чтобы поменять 1-2 стиля нужно добавить/удалить 1-2 класса. Часто это удобнее.

Используя классы вместо style код становится понятнее, легче поменять значения для повторяющихся стилей, следовательно меньше багов.

Впрочем, от style всё равно не уйти полностью. Например, динамически высчитываемые анимации - только class не обойтись.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
DimZ
@DimZ
keep calm and do banner
Конечно, вот пример того, как изменить CSS стили элемента в JavaScript:

const element = document.getElementById("my-element");
element.style.color = "red";

Этот код изменит цвет текста элемента с #000000 на #FF0000.

Вы также можете использовать свойство style для изменения других свойств CSS элемента, таких как размер шрифта, ширина и высота. Например, следующий код изменит размер шрифта элемента на 24 пикселя:

const element = document.getElementById("my-element");
element.style.fontSize = "24px";

Вы также можете использовать метод setProperty() для изменения свойств CSS элемента. Например, следующий код изменит цвет текста элемента на красный и размер шрифта на 24 пикселя:

const element = document.getElementById("my-element");
element.setProperty("color", "red");
element.setProperty("fontSize", "24px");

Я надеюсь, это поможет!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы