我在div中使用列表项显示了一些图像。通过简单的CSS float:left技巧,我可以得到以下布局:


但是我是他们根据div的宽度和高度动态排列,并想要这样的东西:


让我知道是否可以使用CSS,JavaScript或jQuery实现相同的目的。

另外,请告诉我这些示例屏幕快照是否无济于事,并且需要HTML代码。

谢谢

编辑:应用砌体插件后添加图像(请参见下面的图像3)。现在,我有相等数量的图像,并且它们之间的间距相等且具有适当的装订线。但是它总是向左对齐。如何始终将它们居中对齐?

我有以下代码:

<div id="container">
    <img src="" class="myimage">
    <img src="" class="myimage">
    <img src="" class="myimage">
    <img src="" class="myimage">
</div>


和jQuery的砌体部分:

$('#container')。masonry({
    “装订线”:10,
    itemSelector:“。myimage”
});



编辑2:还做了一个jsfiddle,以显示应用砌体插件后的正确边距问题。请同时调整浏览器的大小以查看每种情况的正确间隙:http://jsfiddle.net/5KyRd/7/

最佳答案

这是媒体查询解决方案:http://jsfiddle.net/B45qv/

首先,将图像设置为max-width: 100%,以使其具有灵活性。

从那里,您需要确定每行要多少张图像并将其宽度设置为百分比。只需将100除以每行的数量即可(100/7 = 14.285714%)。此宽度应包括所有填充和边距,因为它们会增加图像的尺寸。

对于所有侧面的1%的边距,上图的宽度为12.285714%,1 + 12.285714% + 1 = 14.285714%

除此之外,您只需要确定将调整每行编号的屏幕尺寸即可。我的示例具有任意值。

的HTML


<body>
    <div class="clearfix">
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
        <img src="http://lorempixel.com/125/50/" alt="temp" />
    </div>
</body>


的CSS


body {
    margin: 0;
    background-color: red;
}
div {
    width: 86%;
    margin: 25px auto;
    padding: 15px 25px;
    background-color: white;
    border: 1px solid white;
    border-radius: 8px;
}
.clearfix:after {
   content: " "; /* Older browser do not support empty content */
   visibility: hidden;
   display: block;
   height: 0;
   clear: both;
}
div img {
    float: left;
    max-width: 100%;
    width: 12.285714%;  /* 7 per row */
    margin: 1%;
}
@media screen and (max-width: 799px) {
    /* 6 per row */
    div img {
        width: 14.66666%;
    }
}
@media screen and (max-width: 699px) {
    /* 5 per row */
    div img {
        width: 18%;
    }
}
@media screen and (max-width: 599px) {
    /* 4 per row */
    div img {
        width: 23%;
    }
}
@media screen and (max-width: 499px) {
    /* 3 per row */
    div img {
        width: 31.33333%;
    }
}
@media screen and (max-width: 399px) {
    /* 2 per row */
    div img {
        width: 48%;
    }
}

10-05 20:53