15

有没有办法让 jquery masonry 使用百分比宽度 div?我正在尝试创建具有 25%、50%、75% 和 100% 宽度的流畅布局。但是,一旦我用 % 设置宽度,自动调整大小就会停止工作,如果我尝试手动触发 mason onresize,我会得到舍入错误,导致 div 跳来跳去。此外,它有时会忽略高度,有时只是停止放置 div 并将它们全部放在 0,0

HTML 标记:

    <div class="boxes">
    <div class="box weight-1">
        <div class="inner">
        <p>lkaj dlksaj ldksjf lkdj flksd flkds flkds flksd jfakldsjf lkdsj flkjfd </p>
        </div>
    </div>
    <div class="box weight-1">
        <div class="inner">
        <p>lkaj dlksaj ldksjf lkdj flksd flkds flkds flksd jfakldsjf lkdsj flkjfd </p>
        </div>
    </div>
    <div class="box weight-2">
        <div class="inner">
        <p>lkaj dlksaj ldksjf lkdj flksd flkds flkds flksd jfakldsjf lkdsj flkjfd </p>
        </div>
    </div>
    <div class="box weight-3">
        <div class="inner">
        <p>lkaj dlksaj ldksjf lkdj flksd flkds flkds flksd jfakldsjf lkdsj flkjfd </p>
        </div>
    </div>
</div>

CSS 属性:

.weight-1 {
width:25%;
}

.weight-2 {
width:50%;
}

.weight-3 {
width:75%;
}

.weight-4 {
width:100%;
}

Muchos gracias 对于任何输入,J

4

4 回答 4

12

忘记 .wight 的东西,只在 css 中添加这个

    .box {
      width: 25%;
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
    }

砌体js

$(function(){
    var container = $('#boxes');

    container.imagesLoaded(function(){  
        container.masonry({
           itemSelector: '.box',
           columnWidth: function( containerWidth ) {
              return containerWidth /4;// depends how many boxes per row
            }(), // () to execute the anonymous function right away and use its result
            isAnimated: true
        });
    });
});

将持有人 div 更改为

 <div id="boxes" class="masonry clearfix"> 

和盒子

<div class="box">...</div>

(请注意,Firefox 可能会导致精确分频器为 100 的位问题,例如 25%,因此将框设置为 24.9 或 24%)已过时

使用 box-sizing 来避免下垂的列问题。

于 2012-06-12T02:55:37.043 回答
8

我有同样的问题,尝试,尝试,再尝试,这对我有用。

.masonry-brick {
   width:25%;/*or others percents*/

   /*following properties, fix problem*/
   margin-left:-1px;
   transform:translateX(1px);
}
于 2013-05-15T21:35:14.623 回答
1

我有同样的问题......用 css calc 选项解决了它。这很好用,但在调整窗口大小时不行,那就有点生气了……</p>

@media screen and (min-width:1020px){.brick { width: calc((100% - 40px) / 5); }}

@media screen and (min-width:800px) and (max-width:1019px){.brick { width: calc((100% - 30px) / 4); }}

@media screen and (max-width:799px){.brick { width: calc((100% - 10px) / 2); }}
于 2015-03-29T12:03:59.633 回答
0

如果你想要25%宽度不要24.9%添加margin-left:-1px!important;到你的盒子里

于 2013-07-11T04:10:29.687 回答