我正在使用CSS网格布局缩略图库,不使用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应以正方形占用空间。
如何解决这个问题?谢谢。
width
和height
属性,以便浏览器可以事先知道它的纵横比,然后它可以根据图像显示的宽度计算出正确的高度,而不必等到实际图像加载完成。 - CBroe