如何集中砌体容器

时间:2013-12-05 03:12:29

标签: css jquery-masonry

我正试图将一个砌筑容器放在页面上。此刻,它与左侧对齐。我的CSS中有margin auto,而JS中的isFitWidth:true,但似乎都没有做任何事情。我也尝试在我的CSS中放置display:block。

这是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'
});

感谢您的帮助!

3 个答案:

答案 0 :(得分:8)

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

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

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

这是他们的代码集示例..

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;
}

答案 1 :(得分:2)

在css中试试这个:

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

修改

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

答案 2 :(得分:0)

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