【发布时间】:2025-12-09 01:25:01
【问题描述】:
我试图让我的 3 个元素 marginLeft 彼此不同,之后的每个元素都比前一个元素大 300px。显然,将它作为字符串的 'px' 是障碍,但我不知道如何克服它。
function render() {
var gElOptions = document.querySelector('.options');
for (var i = 0; i < 3; i++) {
var elOptionBtn = document.createElement('button');
gElOptions.appendChild(elOptionBtn);
elOptionBtn.setAttribute('class', `option-${i}`);
var elOption = document.querySelector(`.option-${i}`);
elOption.style.marginLeft = 1000 + 'px';
// The problematic line:
if (elOption.style.marginLeft === 1000 + 'px') elOption.style.marginLeft -= 300 + 'px';
}
}
<body onload="render()">
<div class="options">
</div>
</body>
【问题讨论】:
-
这应该由 css 完成。 nth-of-type 或 child 然后设置边距。如果您使用一些预处理器(sass,less),那么您可以循环执行。
-
嗨@Robert,我很难让它工作。我确实尝试在 css 中设置 marginLeft,但我仍然面临动态更改其他 2 个按钮的问题。我该怎么做?
标签: javascript styles margin