Как создать класс СSS с помощью JS?
Есть файл js, в котором написан плагин, где используются CSS классы, к которым нет доступа. Как можно с помощью js добавить или изменить параметры этого класса?
card.addClass('card--collection');
Этот класс мне нужно изменить. Его значение width, которое прописано в СSS.
Ответы (3 шт):
Автор решения: stby
→ Ссылка
Команда может выглядеть так:
card.setAttribute('class', 'card--collection')
Автор решения: Igor
→ Ссылка
function changeBackground() {
const s = document.createElement("style");
s.innerText = ".block{background: lightgreen;}";
document.body.appendChild(s);
}
.block {
width: 100px;
height: 50px;
display: inline-block;
border: 1px solid red;
background: yellow;
}
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
<br/>
<button onclick="changeBackground()">Change Background</button>
Автор решения: Spatz
→ Ссылка
Если очень нужно отредактировать сами правила, то можно работать с CSSOM напрямую:
function test() {
const i = [...document.styleSheets[0].cssRules].findIndex(e => e.selectorText === ".card--collection")
const myClassRule = document.styleSheets[0].cssRules[i];
myClassRule.style.width = "10.1em";
}
.card--collection {
height: 5em;
width: 19.1em;
background-color: green;
}
<p class="card--collection"></p>
<p class="card--collection"></p>
<button onclick="test()">test</button>