jQuery 砌体留下间隙

标签 jquery css-float jquery-masonry

我尝试在项目中使用 jQuery Masonry,但它无法正常工作:网格右上角有一个间隙。我尝试过调整网格宽度和边距,这会导致每行一个 block 或所有 block 一起运行(但右上角仍然有间隙。)

尽管 Masonry 正在应用其类并按预期为元素分配绝对定位,但实际上看起来根本没有重新排列 block 。

我确信我做错了什么,但现在我不太确定了。我从 Stack 上的一个类似问题中获取了一个工作 fiddle (http://stackoverflow.com/questions/11695574/jquery-masonry-almost-always-empty-spaces),并仔细修改它以使用我正在工作的维度与,它似乎无法处理这种元素选择。

fiddle :http://jsfiddle.net/dVPA9/4/

最佳答案

对于 Masonry 和 Isotope 而言,您需要记住它们都在模块上运行,这意味着您的列宽应遵循最小公约数(以像素为单位)。然后,如果您的元素跨越多个列(一个模块),则根据可用的屏幕空间(您有巨大的元素),第二个元素(比第一个元素宽得多)无法安装到第一个元素的右侧(比第二窄得多)。

此外,您还为砌体 #container (#grid) 设置了固定宽度,这当然违背了插件的整体目的。

自己看看:删除 width: 1104px;在你的 #grid 上并将浏览器 View 缩放到 fiddle 页面上的最大值 - 你会看到,如果有空间,第二个(宽黑色)元素最终将适合第一个(窄灰色)元素的右侧。

因此,这一切都取决于为您的列宽找到合适的最小公约数,并确保某些元素不会太大并且不会跨越太多列(超过两列)。然后就可以工作了。

另请参阅https://stackoverflow.com/a/11814339/963514https://stackoverflow.com/a/11701171/963514查看类似“问题”的更多解释。

关于jQuery 砌体留下间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12521687/

相关文章:

javascript - 如何从表格的不同行获取下拉列表的 id?

javascript - 关于输入问题的文本区域

javascript - Knockout js 计算未被触发

css - 双面水平 CSS 菜单

javascript - 无法关闭 jquery masonry + waypoint 中的动画

javascript - 如何修改php制作SimpleImage

html - 与 flexbox 底部对齐,同时有一个 float 到位

css - 如何使 float 的 div 相对于其容器的高度垂直对齐

javascript - 梅森和重复填充 block

javascript - Jquery 同位素 : making horizontal Masonry