在网页中,我有一个列表(ul
)元素(li
)。
由于CSS列,元素分布在几列中。
我想知道:
我该怎么做?例如,在JavaScript中。也许在CSS选择器中?
谢谢。
答案 0 :(得分:4)
你想做什么没有CSS机制。可能的是检查每个元素的位置,并根据它进行一些计算和推断。这是一些伪代码:
li
元素的列表。getBoundingClientRect
)n
在其列中是第一个还是最后一个,请检查其“顶部”坐标是否是其所在列中所有元素的最小值(或最大值)。你说这太重了,但让我们仔细看看。以下是查找每列中元素数量的代码。这使用了Underscore,但一般来说很容易写:
var lis = document.querySelectorAll('ul li');
var rects = _.map(lis, function(li) { return li.getBoundingClientRect(); });
var columns = _.groupby(rects, 'left');
var column_counts = _.map(columns, function(c) { return c.length; });