【发布时间】:2018-05-22 15:27:04
【问题描述】:
我使用 CSS Grid 来布局缩略图库,没有使用 Javascript 或任何其他响应式技术。我想将缩略图的高度设置为其宽度 (1:1) 的平方比。
为什么?当页面加载时,我需要缩略图 div 占用空间,因为现在如果缩略图 div 内没有图像,它不会占用任何空间。
这是一个实时示例:https://www.w3schools.com/code/tryit.asp?filename=FMCULIDQUOBX
这是代码:
.container {max-width: 900px;}
.gallery {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
grid-gap: 15px;
}
.thumbnail {box-shadow: 0 4px 4px rgba(0,0,0,0.50);}
img {width: 100%; display: block;}
..................
<div class="container">
<div class="gallery">
<div class="thumbnail">
<a href="large-image.jpg">
<img src="thumbnail-image.jpg">
</a>
</div>
<div class="thumbnail">
...... same as above ......
</div>
<div class="thumbnail">
...... same as above ......
</div>
<div class="thumbnail">
...... same as above ......
</div>
</div>
</div>
上面的代码把宽度(900px)分成四个部分,4个缩略图放在1行。这就是为什么我没有定义任何宽度。
如果图片没有加载,缩略图 div 甚至都不可见。
换句话说,如果您在浏览器中禁用图像,缩略图 div 应该占据方形空间。
如何解决这个问题?谢谢
【问题讨论】:
-
没有基于
fr单位`创建正方形的CSS-Grid方法。 -
“当页面加载时,我需要缩略图 div 来占据空间” - 然后通过 HTML 中的
width和height属性提供实际图像尺寸,所以浏览器会预先知道宽高比是多少...然后它可以在加载实际图像之前根据图像显示的宽度计算正确高度图片。 -
使用 max-* 属性
-
@CBroe 我做不到,调整浏览器窗口大小时布局会中断。