Я хочу отображать переменное количество изображений одинаковой высоты и размера в симметричной сетке. Используя CSS grid и auto-fill
и minmax
, я надеялся, что смогу определить минимальную и максимальную ширину пикселя для моих треков, чтобы я мог предотвратить слишком маленькое масштабирование изображения, при этом поместив столько изображений на одном строка, как позволяет окно просмотра пользователей. Учитывая следующую разметку:
<div class="gallery">
<a href="">
<img src="https://via.placeholder.com/300/300" alt="">
</a>
<a href="">
<img src="https://via.placeholder.com/300/300" alt="">
</a>
<a href="">
<img src="https://via.placeholder.com/300/300" alt="">
</a>
<a href="">
<img src="https://via.placeholder.com/300/300" alt="">
</a>
<a href="">
<img src="https://via.placeholder.com/300/300" alt="">
</a>
<a href="">
<img src="https://via.placeholder.com/300/300" alt="">
</a>
<a href="">
<img src="https://via.placeholder.com/300/300" alt="">
</a>
</div>
Там, где каждое изображение имеет внутренние c размеры 300 x 300 пикселей, я ожидал, что следующие CSS достигнут этого:
img {
max-width: 100%;
}
.gallery {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(210px, 300px));
grid-gap: 1rem;
}
Однако я вижу, что дорожки не масштабируются от 300 до 210 пикселей, вместо этого дорожка оборачивается, как только 300 пикселей не могут быть размещены.
Однако я могу достичь желаемого результата, используя вместо этого max-content
.
img {
max-width: 100%;
}
.gallery {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(210px, max-content));
grid-gap: 1rem;
}
Но max-content
будет максимальной шириной, которую будет занимать изображение, и это должно быть 300px, поэтому я не понимаю, почему при использовании значения stati c 300px это не так аффекта.