我必须按行显示10张图像。例如:
1 2 3 4
5 6 7 8
9 10
(数字是图像)
使用这些图像,我想删除2张图像之间的任何空白区域。
目前,我正在使用CSS的列数,但图像仍然存在行之间的差距。
如何消除这种差距?
(P.s。:问题是所有图像都有不同的高度,所以会发生的是图像占据的区域取决于该行的最大图像高度)
我想只使用没有任何JS的CSS来解决它。
HTML代码:
<div class="container photos-container">
<img class="col-lg-3" src="1">
<img class="col-lg-3" src="2">
<img class="col-lg-3" src="3">
<img class="col-lg-3" src="4">
<img class="col-lg-3" src="5">
<img class="col-lg-3" src="6">
<img class="col-lg-3" src="7">
<img class="col-lg-3" src="8">
<img class="col-lg-3" src="9">
<img class="col-lg-3" src="10">
</div>
答案 0 :(得分:2)
你可以使用masonry.js来获得这个
代码:
jQuery(document).ready(function(){
$('#here_its_id_of_parant_div').masonry({
itemSelector: '.Image_class',
columnWidth: 70
});
});
示例:
$( function() {
$('#container').masonry({
itemSelector: '.item',
columnWidth: 70
});
});
body {
font-family: sans-serif;
}
#container {
border: 1px solid;
padding: 5px;
}
.item {
width: 60px;
float: left;
margin: 5px;
background: #CCC;
}
.item.w2 {
width: 130px;
}
.item.h2 {
height: 130px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/masonry/4.2.1/masonry.pkgd.js"></script>
<div id="container">
<img class="item" src="https://fakeimg.pl/300/">
<img class="item w2" src="https://fakeimg.pl/350x200/ff0000/000">
<img class="item" src="https://fakeimg.pl/350x200/ff0000/000">
<img class="item" src="https://fakeimg.pl/300/">
<img class="item" src="https://fakeimg.pl/300/">
<img class="item" src="https://fakeimg.pl/350x200/ff0000/000">
<img class="item" src="https://fakeimg.pl/300/">
<img class="item" src="https://fakeimg.pl/300/">
<img class="item" src="https://fakeimg.pl/300/">
<img class="item w2" src="https://fakeimg.pl/350x200/ff0000/000">
<img class="item" src="https://fakeimg.pl/350x200/ff0000/000">
<img class="item" src="https://fakeimg.pl/300/">
<img class="item" src="https://fakeimg.pl/300/">
<img class="item w2" src="https://fakeimg.pl/350x200/ff0000/000">
<img class="item" src="https://fakeimg.pl/350x200/ff0000/000">
<img class="item" src="https://fakeimg.pl/300/">
</div>
答案 1 :(得分:1)
您可以尝试css-grid
。现在它得到了所有浏览器的广泛支持。
.container{
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-gap: 0px;
}
img{
max-width: 100%;
}
&#13;
<div class="container">
<img src="http://www.frankieballard.com/sites/g/files/g2000005856/f/Sample-image10-highres.jpg" alt="">
<img src="http://www.frankieballard.com/sites/g/files/g2000005856/f/Sample-image10-highres.jpg" alt="">
<img src="http://www.frankieballard.com/sites/g/files/g2000005856/f/Sample-image10-highres.jpg" alt="">
<img src="http://www.frankieballard.com/sites/g/files/g2000005856/f/Sample-image10-highres.jpg" alt="">
<img src="http://www.frankieballard.com/sites/g/files/g2000005856/f/Sample-image10-highres.jpg" alt="">
<img src="http://www.frankieballard.com/sites/g/files/g2000005856/f/Sample-image10-highres.jpg" alt="">
<img src="http://www.frankieballard.com/sites/g/files/g2000005856/f/Sample-image10-highres.jpg" alt="">
<img src="http://www.frankieballard.com/sites/g/files/g2000005856/f/Sample-image10-highres.jpg" alt="">
<img src="http://www.frankieballard.com/sites/g/files/g2000005856/f/Sample-image10-highres.jpg" alt="">
<img src="http://www.frankieballard.com/sites/g/files/g2000005856/f/Sample-image10-highres.jpg" alt="">
</div>
&#13;
编辑:如果您想使用不同高度的图片,请使用css-display
.container{
display: inline-flex;
flex-direction: column;
flex-wrap: wrap;
height: 500px;
align-content: flex-start;
}
img{
width: 25%;
margin: 2px;
}
&#13;
<div class="container">
<img src="http://www.frankieballard.com/sites/g/files/g2000005856/f/Sample-image10-highres.jpg" alt="">
<img src="https://i.pinimg.com/originals/f7/7d/27/f77d274f5d81536c67d14fb8b93d3a29.jpg" alt="">
<img src="http://www.frankieballard.com/sites/g/files/g2000005856/f/Sample-image10-highres.jpg" alt="">
<img src="http://www.frankieballard.com/sites/g/files/g2000005856/f/Sample-image10-highres.jpg" alt="">
<img src="http://www.frankieballard.com/sites/g/files/g2000005856/f/Sample-image10-highres.jpg" alt="">
<img src="http://www.frankieballard.com/sites/g/files/g2000005856/f/Sample-image10-highres.jpg" alt="">
<img src="https://i.pinimg.com/originals/f7/7d/27/f77d274f5d81536c67d14fb8b93d3a29.jpg" alt="">
<img src="http://www.frankieballard.com/sites/g/files/g2000005856/f/Sample-image10-highres.jpg" alt="">
<img src="http://www.frankieballard.com/sites/g/files/g2000005856/f/Sample-image10-highres.jpg" alt="">
</div>
&#13;
答案 2 :(得分:0)
.container{
max-width: 800px;
width: 100%;
margin: 0 auto;
/* use font-size 0 to remove the 4px spacing naturally caused by display:inline-block on the children */
font-size: 0;
}
.container figure{
display: inline-block;
max-width: 25%;
width: 100%;
}
img{
max-width: 100%;
}
<div class="container">
<figure><img src="https://images.pexels.com/photos/325686/pexels-photo-325686.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt=""></figure>
<figure><img src="https://images.pexels.com/photos/325686/pexels-photo-325686.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt=""></figure>
<figure><img src="https://images.pexels.com/photos/325686/pexels-photo-325686.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt=""></figure>
<figure><img src="https://images.pexels.com/photos/325686/pexels-photo-325686.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt=""></figure>
<figure><img src="https://images.pexels.com/photos/325686/pexels-photo-325686.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt=""></figure>
<figure><img src="https://images.pexels.com/photos/325686/pexels-photo-325686.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt=""></figure>
<figure><img src="https://images.pexels.com/photos/325686/pexels-photo-325686.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt=""></figure>
<figure><img src="https://images.pexels.com/photos/325686/pexels-photo-325686.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt=""></figure>
<figure><img src="https://images.pexels.com/photos/325686/pexels-photo-325686.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt=""></figure>
<figure><img src="https://images.pexels.com/photos/325686/pexels-photo-325686.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt=""></figure>
</div>
你需要使用display:inline-block;在每个图像和font-size:0上父级删除间距。以下是Codepen上的示例:
答案 3 :(得分:0)
您可以使用flex获得此显示。
但是你需要能够给容器一个明确的高度。 (强制换行)而且你需要3个额外的元素作为分隔符来强制包裹在正确的点上。
如果这个要求对您没有问题,那么解决方案就是在容器上显示flex,并显示方向列。并使用订单样式基于4个周期重新排列项目,使用nth-child:
.test {
margin: 10px;
width: 400px;
border: solid 1px black;
display: flex;
flex-wrap: wrap;
flex-direction: column;
height: 400px;
padding-bottom: -100px;
}
.elem {
margin: 5px;
width: 20%;
}
.elema {
height: 130px;
}
.elemb {
height: 80px;
}
.elemc {
height: 40px;
}
.elem:nth-child(4n + 1) {
order: 10;
background-color: tomato;
}
.elem:nth-child(4n + 2) {
order: 20;
background-color: yellow;
}
.elem:nth-child(4n + 3) {
order: 30;
background-color: lightblue;
}
.elem:nth-child(4n) {
order: 40;
background-color: lightgreen;
}
.sep {
background-color: red; /* only for demo purposes */
width: 2px; /* only for demo purposes */
height: 100%;
}
.sep:nth-last-child(3) {
order: 15;
}
.sep:nth-last-child(2) {
order: 25;
}
.sep:nth-last-child(1) {
order: 35;
}
&#13;
<div class="test">
<div class="elem elema">1</div>
<div class="elem elemb">2</div>
<div class="elem elemc">3</div>
<div class="elem elemb">4</div>
<div class="elem elemc">5</div>
<div class="elem elema">6</div>
<div class="elem elema">7</div>
<div class="elem elemb">8</div>
<div class="elem elemc">9</div>
<div class="elem elemb">10</div>
<div class="elem elemc">11</div>
<div class="elem elema">12</div>
<div class="sep"></div>
<div class="sep"></div>
<div class="sep"></div>
</div>
&#13;
答案 4 :(得分:0)
#images-wrapper {
line-height: 0;
-webkit-column-count: 5;
-webkit-column-gap: 0px;
column-count: 5;
column-gap: 0px;
}
#images-wrapper img {
width: 100% !important;
height: auto !important;
}
#images-wrapper{
display:inline-block;
margin-right: auto;
margin-left: auto;
}