我有下面的带有一个css网格的HTML
<div id="grid">
<div class="main-item">Main</div>
</div>
#grid {
display: grid;
grid-template-columns: repeat(5, auto);
text-align: center;
}
#grid > * {
border: 1px solid blue;
padding: 20px;
}
#grid > .main-item {
grid-row: 3;
grid-column: 3 / 5;
background: rgba(0, 0, 0, 0.2);
}
重要的是.main-item
在网格中有固定的position.
我现在将25cells个添加到网格中.
const grid = document.querySelector("#grid");
for (let i = 0; i < 25; i++) {
const item = document.createElement("div");
item.innerText = i.toString();
grid.append(item);
}
问题是,我希望这些元素忽略.main-item
的位置(就像它不在那里一样).然而,目前,css对此进行了更正,并将元素传递到.main-item
左右.我想要下面的次要行为:
我可以通过在JavaScript中设置style.gridRow
和style.gridColumn
来进行更正
item.style.gridRow = (Math.floor(i / 5) + 1).toString();
item.style.gridColumn = ((i % 5) + 1).toString();
有没有一种方法可以在不设置JS中的所有其他元素的情况下做到这一点?是否有防止固定因素影响流程校正的CSS?