【发布时间】:2015-07-05 07:23:55
【问题描述】:
我一直在努力制作一个能够根据包含的项目数量自动适应内容 (width: 100%) 的图片库。
这就是我的意思: 假设这是我的画廊: http://codepen.io/anon/pen/eNMOEz
.item {
width: 75px;
height: 75px;
border-width: 1px;
float: left;
}
当您缩放浏览器时,由于项目设置为float: left,因此每行的项目数会增加。
但是,画廊的宽度在页面右侧有间隙,因为每个.item 都被定义为恰好75px。
我想要的看起来更接近这个: http://codepen.io/anon/pen/xGWKaP
.item {
width: 5%;
float: left;
}
您可以看到每行的项目完全适合页面width,因为项目宽度定义为百分比而不是固定的 px 值。但是,这个也有两个问题,我想解决:
每行的项目数是固定的(在示例中为 20)。我希望项目编号像“
Math.floor”值,表示可以容纳多少。例如,如果项目宽度设置为 75 像素并且页面宽度为 800 像素,则项目计数应为 10(因为 750 像素是 800 像素宽度可以覆盖的最大值。)所以它应该是 @ 987654333@每行底部有一个空隙,我不知道是什么原因造成的。
我主要是在寻找一个纯 css 的解决方案 - 但也可以接受一个聪明且无故障的 js。
这是一个很长的帖子,我希望一切都清楚。
【问题讨论】:
-
如果最后一行只有两张图片,你想要什么?它们应该是 50% 宽吗?...否则,如果没有 JS,这将非常困难。
-
不,他们应该继续流程。如果单个图像占整个页面的 5%,那么所有图像都应该是 5%。但我仍然希望看到您的解决方案。 @Paulie_D
-
你可以接近,
flexbox...如果您允许项目增长以匹配宽度(起始宽度为 75px)但剩余部分的对齐是有问题的...我不确定它是否可以完全按照您的想象解决。 codepen.io/Paulie-D/pen/ZGxzmL?editors=110 -
哦...顺便说一句...你提到的差距...这是因为图像没有
display:blockcodepen.io/Paulie-D/pen/dombaj -
我很确定这不能用 CSS 解决...布局的块性质只是不允许行换行和同时收缩换行.
标签: javascript html css