Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何确定实际显示的CSS3列数(相对于指定的列数)?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如何确定实际显示的CSS3列数(相对于指定的列数)?

Javascript 如何确定实际显示的CSS3列数(相对于指定的列数)?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个标签列表,这些标签位于我指定为具有多列的框中: #tags { -webkit-columns: 140px 5; } 结果: 此列表的内容是动态生成的 当我调整浏览器窗口的大小时,列的数量将折叠。e、 g: 使用jQuery/JS/CSS/etc,我如何确定在任何给定时间显示多少列?除非您指定了所有与列宽相关的属性,否则浏览器将尝试在内容区域中容纳整列(在元素的左右填充之间)。所以(contentWidth+columnGap)/(columnWidth+columnGap)

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

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

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

当我调整浏览器窗口的大小时,列的数量将折叠。e、 g:


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

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

请注意,右边的填充可能设置得太高,以至于整个列都可以在那个里容纳—您可能需要调整计算


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

您可以获得如下值:

$('#tags').css('-webkit-column-count');
尝试发出以下警报:

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

与Alexei的回答类似,我想出了一个解决方案来获得列数:

  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.

你能给我一个提琴或一些HTML吗?这仍然只返回“5”,即使只显示三列。