我正在使用 jQuery Masonry 开发响应式照片网格。我正在使用一个简单的 CSS 比例网格,一切正常(除了浮动不能垂直工作的事实)。我添加砖石的那一刻,这个布局就中断了。
$(document).ready(function() {
// select container
var $work = $(".work");
// set columns based on window width
var columns = 3,
setColumns = function() { columns = $(window).width() > 768 ? 3 : 2; };
$work.imagesLoaded(function() {
$work.masonry({
itemSelector: '.project',
columnWidth: function(containerWidth) {
return containerWidth / columns;
}
});
$(window).on('resize', function() {
// set columns now that the browser width is different.
setColumns();
$work.masonry('reload');
}).resize();
});
});
可以在此处找到演示该问题的 jsfiddle 。
在 768px 断点之上,一切正常(尽管有很多闪烁),但在断点之下,应该是两列的内容只能合二为一。
我尝试过的修复:
- 将 columnWidth 设置为 1 可以在 Safari 和 Firefox 中修复它,但在 Chrome 中没有。
- 将其中一列的宽度设置为 47.5% 而不是 49%(占 2% 的边距),但是我的网格在视觉上没有对齐。
我怀疑这与宽度和边距略微超过有关,但我已经彻底检查了我的代码,这些数字加起来应该是一个不错的甚至 100% 的宽度。只有当砌体进来时,它才会破裂。
想法?任何帮助将不胜感激。