我正在尝试使用CSS网格制作一个图片库。我需要这样的东西:
但所能达到的就是这个JSFiddle。问题是,DIV占用了所有剩余的空间,我不希望这样。第一个
eyh26e7m1#
纯CSS解决方案可在此jsfiddle中找到HTML语言
<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>
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; }
另外使用Isotopes JS masonry layout等库可能会使您受益它可以帮助您生成已显示的布局样式。下面是一个工作示例。HTML语言
<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>
#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; }
JS -注意,必须将masonry应用于父元素,在本例中是container的id
$( function() { var $container = $('#container').masonry({ itemSelector: '.item', columnWidth: 70 }); });
查看jsFiddle here
3mpgtkmj2#
看下面的代码:第一个
2条答案
按热度按时间eyh26e7m1#
纯CSS解决方案可在此jsfiddle中找到
HTML语言
CSS
另外
使用Isotopes JS masonry layout等库可能会使您受益
它可以帮助您生成已显示的布局样式。
下面是一个工作示例。
HTML语言
CSS
JS -注意,必须将masonry应用于父元素,在本例中是container的id
查看jsFiddle here
3mpgtkmj2#
看下面的代码:
第一个