grid-column: span создает дополнительные столбцы - PullRequest
2 голосов
/ 21 октября 2019

Я совершенно новичок в CSS Grid. У меня есть простая галерея, где столбец элементов неизвестен.

У меня есть следующий CSS для родителя:

.gallery {    
    display: grid;
    grid-template-columns: repeat( auto-fit, minmax(300px, 1fr) );
    grid-auto-flow: dense;
    grid-gap: 1px;
}

И элементы в галерее могут иметь классы, которые принимают несколькостолбцы, например:

.grid-col-2 {
    grid-column: span 2;
}

Но у меня проблема. При изменении размера браузера (или в мобильном устройстве), если есть место только для одного столбца (в моем случае ширина меньше 600 пикселей), grid-column нарушает компоновку, и вместо одного столбца, есть 2, а второйКолонка имеет неправильный размер.

Теперь первое, что мне пришло в голову, - это создать медиа-правило, которое говорит, что если ширина меньше 600 пикселей, вместо этого используйте grid-column: 1 / -1. Но это приводит меня к другой проблеме (без решения afaik), галерея не обязательно будет на 100% шириной окна, и нет правил мультимедиа, основанных на ширине родительского элемента.

Вот изображение, показывающее, что происходит:

enter image description here

А вот такая же скрипка: https://jsfiddle.net/pynd13bv/

Есть лиспособ сказать Grid не создавать дополнительные столбцы из-за grid-column, а вместо этого просто взять одну полную строку, не нарушая компоновку?

...