我正在尝试实现图像显示方式的变体,以便观看此网站的用户更喜欢在我的图像现有滑块上查看平铺。
图库标记如下:
<!-- TILE GALLERY -->
<div id=tileGallery >
<?php for ( $x=0; $x<40; $x++)
{?>
<div class="col-lg-3 col-md-4 col-xs-6">
<img id=img_<?php echo$x;?> data-zoom-image="picsLarge/home-<?php echo $x+1;?>.jpg" class=imgGal src="pics/home-<?php echo $x+1;?>.jpg">
</div><?php
}?>
</div>
<!-- end tile gallery -->
这是CSS(没有显示尚未更改的引导类)
#tileGallery
{
width:90%;
height:80%;
margin-left:auto;
margin-right:auto;
}
.imgGal
{
max-width: 100%;
max-height: 100%;
height: auto;
}
图像按照我预期的方式显示在网格中,但有些图像被“碰撞”或“移位”,并且空白空间保持在我期望的位置和图像的位置。 (示例在网页的3个示例图片中跟随):
问题的示例图片/屏幕截图:http://johnkellyphotos.com/exampleForSO/
正如您从上面的三张图片中看到的那样,中型网络浏览器可以正确显示,而大型和小型移动图像就好像它们的位置是空的。为了清楚起见,在空白区域中显示图像并没有失败,只是没有元素存在。
以下是我的尝试:
即使图像在上传时尺寸不完全相同,理想情况下也可以这样工作,这样它们可以整齐地显示,居中,并且不会相互“碰撞”。我无法向搜索引擎描述我的问题,因此很难找到对我的问题特别有帮助或特定的任何内容。
如果此问题的任何部分不清楚,请告诉我,以便我可以解决。
谢谢!
答案 0 :(得分:1)
当像你一样在CSS中使用百分比时,很多时候宽度和高度以小数形式输出,各个浏览器的舍入方式不同。我遇到过这样的问题很多次,这种舍入是不稳定的,导致一些容器比相邻的容器大1px,这将导致“移位”的图像。
让我们走网格:
A B C
D E F
G H I
只要所有元素共享完全相同的高度,它们就是完美的网格。但是,如果A的四舍五入比其他元素高1px,那么你的网格就会变成:
A B C
D E F F G H
I
这是因为A比B和C高1px,这使得它将1px侵入到浮动正在创建的下一个“行”中。而现在D和E的行为就像A在他们的左边,他们在右边的位置开始了1个位置。
这可能以许多不同的方式发生,导致不同的图像在网格的不同区域被“推”。
我建议修复此问题是使用Javascript设置容器的高度。所以他们都是完全相同的高度。不要依赖CSS百分比给出不变的大小。