Кратко
СкопированоМетод set устанавливает стиль. Может быть применён как к DOM-элементу, так и конкретному CSS-правилу.
В первом случае специфичность будет у атрибута style, т. к. стили будут записаны инлайново. Во втором случае специфичность не изменится.
Как пишется
СкопированоМетод set может принимать три параметра.
propertyName. Обязательная строка с названием CSS-свойства. Должна совпадать с названием свойства, например, max.
value. Строка с новым значением свойства. Если параметр не указан, то будет передана пустая строка.
priority. При помощи этого параметра можно установить новому значению самый высокий приоритет !important. Для этого передайте строку "important".
setProperty(propertyName, value, priority)
setProperty(propertyName, value, priority)
Пример
СкопированоРассмотрим случай, когда метод применяется к конкретному CSS-правилу. У нас есть HTML-элемент со следующими классами:
<div class="one two"></div>
<div class="one two"></div>
.one { background: blue; width: 100px; height: 100px; transition: background .2s ease-in; cursor: pointer;}.two { background: grey;}
.one {
background: blue;
width: 100px;
height: 100px;
transition: background .2s ease-in;
cursor: pointer;
}
.two {
background: grey;
}
Давайте изменим CSS-правило для класса .two.
// <div>, цвет которого будем менятьconst sq = document.querySelector('div')// Таблица стилей, где будем искать нужное правилоconst stylesheet = document.styleSheets[1]// Находим нужное правилоconst newRule = [...stylesheet.cssRules].find( (r) => r.selectorText === ".two")// При наведении <div> окрашивается в новый цветsq.addEventListener('mouseover', () => { newRule.style.setProperty('background', 'tomato')})// Когда курсор уходит с элемента,// окрашиваем <div> обратно в серыйsq.addEventListener('mouseout', () => { newRule.style.setProperty('background', 'grey')})
// <div>, цвет которого будем менять
const sq = document.querySelector('div')
// Таблица стилей, где будем искать нужное правило
const stylesheet = document.styleSheets[1]
// Находим нужное правило
const newRule = [...stylesheet.cssRules].find(
(r) => r.selectorText === ".two"
)
// При наведении <div> окрашивается в новый цвет
sq.addEventListener('mouseover', () => {
newRule.style.setProperty('background', 'tomato')
})
// Когда курсор уходит с элемента,
// окрашиваем <div> обратно в серый
sq.addEventListener('mouseout', () => {
newRule.style.setProperty('background', 'grey')
})