【问题标题】:How to Center Masonry Container如何居中砌体容器
【发布时间】:2013-12-05 03:12:29
【问题描述】:

我正在尝试在页面上居中放置一个砌体容器。目前,它与左侧对齐。我的 CSS 中有自动边距,JS 中有 isFitWidth: true ,但似乎都没有做任何事情。我也尝试将 display:block 放在我的 CSS 中。

这是 HTML;

<div id="masonry_container" class="group">

<div class="masonry_item">
    <a href="http://storyville.jonmarkoff.com/storyvillewp"target="_blank">
    <img src="images/storyville_home.png" alt="Storyville Entertainment"/>
    <h3>Storyville Entertainment</h3></a>
</div><!--masonry_item-->


<div class="masonry_item">
    <a href="http://www.ducklingfarm.com"target="_blank">
    <img src="images/udof_home.jpg" alt="Ugly Duckling Organic Farm"/>
    <h3>Ugly Duckling Organic Farm</h3></a>
</div> <!--masonry_item-->


<div class="masonry_item">
    <a href="http://www.underdonk.com"target="_blank">
    <img src="images/underdonk_home.png" alt="underdonk"/>
    <h3>Underdonk</h3></a>
</div> <!--masonry_item-->

<div class="masonry_item">
    <a href="http://www.jaeeunlee.com" target="_blank">
    <img src="images/jaeeunlee_home.png" alt="jaeeunlee"/>
    <h3>www.jaeeunlee.com</h3></a>
</div> <!--masonry_item-->

<div class="masonry_item">
    <img src="images/goindoor_hospitals.png" alt="goindoor"/>
    <h3>Goindoor</h3>
</div> <!--masonry_item-->

<div class="masonry_item">
    <img src="images/cakes_home.jpg" alt="wonderfully whimsical cakes"/>
    <h3>Wonderfully Whimsical Cakes</h3>
</div> <!--masonry_item-->

</div><!--#masonry_container .group-->

CSS;

.group {
    display: inline-block;
    clear:both;
}

.group:after {
    visibility: hidden;
    display: block;
    font-size: 0;
    content: " ";
    clear: both;
    height: 0;
}

#masonry_container {
margin:50px auto;
width:100%;
position:relative;
z-index:2001;
}

.masonry_item {
width:300px;
margin:0 0 20px 0px;
padding:20px;
}

.masonry_item:hover{ 
outline:1px solid white;
}

#masonry_container img {
width:100%;
}

和JS;

var container = document.querySelector('#masonry_container');
var msnry = new Masonry( container, {
    // options
    isFitWidth: true,
    itemSelector: '.masonry_item'
});

感谢您的帮助!

【问题讨论】:

    标签: css jquery-masonry


    【解决方案1】:

    我今天试图自己解决这个问题,并认为我会分享一个可能的解决方案。

    根据 Masonry 自己的选项页面 "isFitWidth": true 似乎是关键

    http://masonry.desandro.com/options.html#isfitwidth

    这是他们的 codepen 示例..

    http://codepen.io/desandro/pen/nGLvx

    这是我的简化和简单的方法..

    小提琴

    https://jsfiddle.net/Hastig/xtw113wx/2/ - 代码播放

    https://jsfiddle.net/Hastig/xtw113wx/2/embedded/result/ - 全屏

    html

    <div class="masonry-container js-masonry"  data-masonry-options='{ "isFitWidth": true }'>
        <div class="image-div">
            <img class="image" src="" style="width: 200px; height: 100px;">
        </div>
        <!-- ..lots more divs in jsfiddle.. -->
    </div>
    

    css

    .masonry-container {
        margin: 0 auto; /* this is the css that keeps the container centered in page */
    }
    
    .image-div {
        float: left;
        width: 230px;
        margin: 5px;
        font-size: 0;
    }
    
    .image {
        width: 230px;
        height: auto;
    }
    

    【讨论】:

    • isFitWidth = true 添加到 Masonry 的初始化中,将 margin:0 auto; 添加到我初始化 Masonry 的容器的 CSS 中足以让它工作。
    • 2019年更新:参数名称改为fitWidth:masonry.desandro.com/options.html#fitwidth
    【解决方案2】:

    在 css 中试试这个:

    .masonry_item {
      width:300px;
      margin:0 auto 20px auto;
      padding:20px;
    }
    

    编辑

    我第一次没有正确阅读此内容。如果要使实际容器居中,则需要为容器设置固定大小而不是 100%。也许是 500 像素。然后从 .group 类中删除 display: inline-block 。应该这样做。

    【讨论】:

    • 只需删除 display:inline-block 就可以了。谢谢!
    • +1 表示编辑。 “在容器上设置宽度”让我对我试图解决的相关问题有了很大的理解。
    【解决方案3】:

    为容器设置固定大小,如width = 300px; height = 500px。然后,使用left: 50%; top: 50% 移动容器。最后,将margin-left 设置为-1/2 的宽度值,将margin-top 设置为-1/2 的高度值。这仅适用于绝对定位。

    【讨论】:

    • 请注意,这不适用于响应式砌体,如果您在外部容器上设置静态宽度,它将阻止砌体重新排列容器内的项目。使用 isFitWidth = true 让砌体在重新排列容器时自动设置外部容器的宽度,这样就不需要 hacky JS/Media 查询来使其工作。
    猜你喜欢
    • 2023-01-06
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多