2

我有一个标签列表,这些标签位于我指定为具有多列的框中:

#tags {
  -webkit-columns: 140px 5;
}

结果:

屏幕截图 - 5 列

此列表的内容是动态生成的。

当我调整浏览器窗口的大小时,列数会折叠。例如:

在此处输入图像描述

使用 jQuery / JS / CSS / 等,我如何确定在任何给定时间显示了多少列?

4

3 回答 3

2

除非您指定了所有与列宽相关的属性,否则浏览器将尝试在内容区域(在元素的左右填充之间)容纳整数列。所以(contentWidth + columnGap)/(columnWidth + columnGap)四舍五入会给你结果。

请注意,右填充可能设置得如此之高,以至于整列都可以放在那里——您可能需要调整计算。

如果您在列文本中有一个 100% 宽度的元素,您也可以直接获取列的大小。

于 2013-08-16T04:11:01.257 回答
0

你可以得到这样的值:

$('#tags').css('-webkit-column-count');

尝试提醒这一点:

alert($('#tags').css('-webkit-column-count'));
于 2013-08-16T05:16:06.967 回答
0

与阿列克谢的回答类似,我想出了一个获取列数的解决方案:

  var $tags = $("#tags"),
      column_width = $tags.children(':first').width(),
      container_width = $tags.width(),
      column_count = Math.floor(container_width / column_width); // in my case, sum of column gaps is less than the width of a column, so I can round down.
于 2013-08-16T07:34:15.723 回答