我尝试在项目中使用 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/963514和 https://stackoverflow.com/a/11701171/963514查看类似“问题”的更多解释。
关于jQuery 砌体留下间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12521687/