У меня есть массив, который я сопоставляю с источниками изображений, чтобы сформировать галерею изображений. На данный момент он отображает один столбец вниз. Я не уверен, как заставить его заполнить другие столбцы. Любые советы будут высоко оценены!
Это текущий выход
Стремление иметь -
[123]
Код -
<div className = "image-grid">
<SRLWrapper options = {options}>
{data.home.galleryImage.map((image, index, caption) => (
<div className = "image-item" key = {`${index}-cl`}>
<img src = {`http:XXX${image.url}`} alt = "" class = "galleryimg"/>
<div class = "imgoverlay">
<div class = "imgtext">zoomie</div>
</div>
</div>
))
}
</SRLWrapper>
</div>
css-
.image-grid {
display: grid;
grid-template-columns: repeat(3, minmax(100px, 1fr));
column-gap: 2rem;
}
.image-item {
position: relative;
width: 100%;
display: block;
margin-bottom: 2rem;
}
Было бы полезно, если бы вы показали нам обработанный HTML, а не свой шаблон.
В файле CSS
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
поменяй autofit на 3 может сработает
Спасибо за ваш ответ, который сделал сетку более красивой, но по-прежнему имеет контент только в левой колонке - imgur.com/a/QKGYLaq
Причина проста. Ваше свойство display:grid
применяется только к компоненту SRLWrapper
.
Вам нужно установить набор className = "image-grid"
в родительском элементе вашего компонента SRLWrapper
, и тогда он будет работать :)
SRLWrapper.js
файл возвращает некоторый JSX. Сейчас у вас есть только один элемент сетки для вашего контейнера сетки. Вот почему, несмотря на то, что вы установили 3 столбца для контейнера сетки, отображается только один дочерний элемент SRLWrapper
.
Одна хитрость: всегда используйте консоль разработчика (Ctrl+Shift+I)
для отладки этих сценариев, потому что там мы получаем реальную картину.
Надеюсь, вы поняли, о чем я говорю.
Наслаждайтесь Mate :) Добро пожаловать. Удачного кодирования :)
«Использовать ли CSS или JavaScript» не имеет смысла. Один из них — механизм стилей, а другой — язык сценариев. Я попытался отредактировать ваш заголовок в связный вопрос. Не стесняйтесь пересматривать дальше. Кроме того, кажется, что вы должны пометить React или что-то в этом роде.