Lin*_*int 2 html javascript css angular
我想动态更改 css 类的属性之一的值
这是我的场景:
我有许多元素使用一个类,而不是获取所有元素并循环它们并应用样式,我想更改已经应用于它们的类属性之一的值。例如
.prodName {
max-width: 270px;
display: block;
}
Run Code Online (Sandbox Code Playgroud)
上面的类被许多元素使用,我想改变该类的属性之一,例如
.prodName {
max-width: 350px <---
display: block;
}
Run Code Online (Sandbox Code Playgroud)
javascript中有没有简单的方法可以做到这一点?
在我发布这个问题之前,我已经进行了搜索,但没有找到任何简单有用的东西。预先感谢伸出的援助之手。
对于这种情况,您可以使用 CSS 变量。
const root = document.querySelector(':root');
function play() {
root.style.setProperty('--size', '300px');
}Run Code Online (Sandbox Code Playgroud)
:root {
--size: 100px;
}
.container {
background-color: red;
width: var(--size);
height: var(--size);
cursor: pointer;
}Run Code Online (Sandbox Code Playgroud)
<div class="container" onclick="play()"></div>Run Code Online (Sandbox Code Playgroud)
上述方法的唯一问题是旧版浏览器的支持。如果您必须支持 IE 以及不支持 CSS 变量的旧版浏览器,您可以通过向 body/parent 容器添加一个类来解决此问题。
function play() {
document.body.classList.add('large')
}Run Code Online (Sandbox Code Playgroud)
.container {
background-color: red;
width: 100px;
height: 100px;
cursor: pointer;
}
.large .container {
width: 300px;
height: 300px;
}Run Code Online (Sandbox Code Playgroud)
<div class="container" onclick="play()"></div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1366 次 |
| 最近记录: |