pau*_*cxz 10 html css css-grid
我正在尝试使用 CSS 网格制作图像库。我需要这样的东西:

但所有能实现的就是这个JSFiddle。
问题是,DIV 占用了所有剩余空间,我不希望这样。
#gallery {
background: #cfc;
padding: 32px;
display: grid;
grid-auto-rows: 350px;
grid-template-columns: repeat(auto-fit, auto);
grid-gap: 10px;
}
.cell {
background: #fcc;
}
.cell>img {
height: 100%;
}Run Code Online (Sandbox Code Playgroud)
<div id="gallery">
<div class="cell">
<img src="http://via.placeholder.com/350x500" />
</div>
<div class="cell">
<img src="http://via.placeholder.com/250x150" />
</div>
<div class="cell">
<img src="http://via.placeholder.com/150x150" />
</div>
<div class="cell">
<img src="http://via.placeholder.com/370x150" />
</div>
</div>Run Code Online (Sandbox Code Playgroud)
小智 0
超文本标记语言
<div class="wrap">
<div class="flex-c">
<div class="flex-i big"></div>
<div class="flex-i red"></div>
<div class="flex-i big green"></div>
<div class="flex-i green"></div>
<div class="flex-i red"></div>
<div class="flex-i blue"></div>
<div class="flex-i green"></div>
<div class="flex-i red"></div>
<div class="flex-i blue"></div>
<div class="flex-i green"></div>
<div class="flex-i red"></div>
<div class="flex-i blue"></div>
<div class="flex-i green"></div>
<div class="flex-i red"></div>
<div class="flex-i blue"></div>
<div class="flex-i green"></div>
<div class="flex-i red"></div>
<div class="flex-i blue"></div>
<div class="flex-i green"></div>
<div class="flex-i red"></div>
<div class="flex-i blue"></div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
.flex-c:after {
content: '';
display: table;
clear: both;
}
.flex-i.red { background-color: red; }
.flex-i.blue {background-color: blue; }
.flex-i.green {background-color: green;}
.flex-i {
transform: rotate(90deg) scaleY(-1);
height: 100px;
width: 100px;
background-color: gray;
margin: 0 10px 10px 0;
float: left;
}
.flex-i:after,
.flex-i.big:before {
content: '';
height: 100px;
width: 100px;
left: 110px;
top: 0;
position: absolute;
background-color: pink;
}
.flex-i.big:after {
left: 220px;
}
.flex-i.big:before {
left: 220px;
bottom: 0;
top: auto;
}
.big {
width: 210px;
height: 210px;
}
Run Code Online (Sandbox Code Playgroud)
此外
您可能会受益于使用Isotopes JS masonry layout等库
它可以帮助您创建您所展示的布局样式。
这是一个工作示例。
超文本标记语言
<div id="container">
<div class="item"></div>
<div class="item w2"></div>
<div class="item"></div>
<div class="item w2"></div>
<div class="item h2"></div>
<div class="item"></div>
<div class="item h2"></div>
<div class="item w2 h2"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item h2"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item w2"></div>
<div class="item h2"></div>
<div class="item"></div>
<div class="item h2"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
#container {
border: 1px solid;
padding: 7px;
}
.item {
width: 60px;
height: 60px;
float: left;
margin: 3px;
background: #CCC;
}
.item.w2 {
width: 130px;
}
.item.h2 {
height: 130px;
}
Run Code Online (Sandbox Code Playgroud)
JS - 请注意,您必须将砌体应用到父元素,在本例中是容器的 id
$( function() {
var $container = $('#container').masonry({
itemSelector: '.item',
columnWidth: 70
});
});
Run Code Online (Sandbox Code Playgroud)
在这里查看jsFiddle
| 归档时间: |
|
| 查看次数: |
14638 次 |
| 最近记录: |