【发布时间】:2018-12-21 23:49:58
【问题描述】:
假设我有一个 3 列的 CSS-Grid。有没有办法使用 JavaScript 来获取自动放置元素的 grid-row 和 grid-column?
例子:
console.log($('#test').css('grid-row'), $('#test').css('grid-column'));
// expected output: 2 3
// actual output: two empty strings
.grid {
display: grid;
grid-template-columns: repeat( 3, 1fr);
}
<div class="grid">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div id="test"></div>
<div></div>
<div></div>
<div></div>
</div>
这里是示例的 JSFiddle:https://jsfiddle.net/w4u87d2f/7/
在这个例子中,我可以通过计算元素数并知道网格有三列来计算:
grid-column = $('#test').index() % 3 + 1;
grid-row = Math.ceil( $('#test').index() / 3 )
但这仅适用于非常简单的网格,也意味着我必须考虑更改列数的断点。
编辑:这不是Retrieve the position (X,Y) of an HTML element 的副本,因为我对像素坐标不感兴趣,而是对 CSS-Grid 中的行号和列号感兴趣。
【问题讨论】:
-
你会如何处理手机?
-
为什么不把它放到
id让生活更轻松? -
-
@JayGould 因为在我试图解决的任务中我没有
id并且行号将取决于断点。 -
@Rainb 我不确定你的意思,我将如何处理移动设备上的内容?
标签: javascript jquery css css-grid