Bootstrap&砌体天沟 - 响应

时间:2014-03-17 14:10:34

标签: twitter-bootstrap

在过去的12个小时里,我一直在试图找到解决这个问题的方法,但我还是没有设法做到这一点......

我想将基于百分比的值设置为Masonry itemSelector(50%,33.333333%和25%,具体取决于我想要的列数 - 2,3或4)并且在项目之间有一个15px的装订线。

我如何看待它是否如果我想要4列,每列应该是25%宽减去15px(排水沟),但我只是想办法做到这一点。我必须处于某种脑力锁定状态......

HTML

<div class="container">
    <div id="content">
        <article class="post post-columns">asd</article>
        <article class="post post-columns">dsa</article>
        <article class="post post-columns">asd</article>
        <article class="post post-columns">dsa</article>
        <article class="post post-columns">asd</article>
        <article class="post post-columns">dsa</article>
        <article class="post post-columns">asd</article>
        <article class="post post-columns">dsa</article>
    </div>
<div class="container">

CSS

article {
    background: #333;
    margin-bottom: 15px;
    height: 50px;
}
.post-columns {
    width: 25%;
    float: left;
}
.container {
    background: #dadada;
}

JS

$(document).ready(function () {
    var container = $('#content');

    container.masonry({
        itemSelector: '.post',
        columnWidth: '.post-columns',
        gutter: 0
    }); 
});

以下是演示:http://jsfiddle.net/4urJT/3/

谢谢!

1 个答案:

答案 0 :(得分:1)

令人惊讶的是,我设法用我糟糕的JS知识做到了!它不漂亮,但它有效。

$(document).ready(function () {

    var columnCount = 4;
    var gutter = 15;

    $('.post').width(function() {
        return (((($('#content').width() - ((columnCount*gutter) - gutter)) / columnCount) / $('#content').width()) * 100)+'%';
    });

    $( window ).resize(function() {
        $('.post').width(function() {
            return (((($('#content').width() - ((columnCount*gutter) - gutter)) / columnCount) / $('#content').width()) * 100)+'%';
        });
    });
    var container = $('#content');

    container.masonry({

        itemSelector: '.post',
        gutter: gutter,

    });     
});

以下是工作演示:http://jsfiddle.net/4urJT/4/