fbir
@fbir
начинающий верстальщик

Как при наведении вывести содержимое только 1 блока из всего массива?

Есть сетка элементов вот такая ( внутри каждого блока, что-то типа меню категории)
5d6f8f35af80e064434036.png
При наведении меняется размер всего ряда элементов, а нужно что бы менялся размер конкретного элемента + сдвигалась вниз колонка. На данный момент реализовано просто, display:none на элемент который нужно показать. Был бы очень признателен, если кто-то просто наведет на мысль о том, как это сделать.
  • Вопрос задан
  • 282 просмотра
Решения вопроса 1
Николай , Flexbox - одномерная система. Он "видит" строку только в одном направлении. Поэтому нельзя увеличить один элемент, не затронув другие в строке.

Вариант №1: CSS GRID
При этом, CSS Grid, например, двумерная.
Она позволяет работать и с колонками и со строками.
Как вариант, можно использовать её: https://codepen.io/hisbvdis/pen/pozdPeW
В этом примере получилось сделать смещение в сторону при увеличении элемента

Вариант №2: CSS Grid со смещением вниз
В это варианте сделал смещение вниз, но здесь нужно сделить за правильным количеством выставленных строк в гриде. И увеличение элемента смещает все нижележащие, перенося их на новую колонку.
https://codepen.io/hisbvdis/pen/bGbYRpL

Вариант №3: CSS Columns
В этом случае используется функционал CSS Columns.
Увеличение элемента приводит к тому, что он смещает внизу все элементы в колонке, которые все равно переносятся в новые колонки для равномерного распределения.
https://codepen.io/hisbvdis/pen/oNvoWmN

P.S. Все примеры не претендуют на идеал и представляют пример, который можно доработать.

P.P.S. Как я написал в комментариях, недоработкой Вашего макета кажется то, что не продумано, куда будут деваться элементы, которые смещаются вниз. Они же не могут просто улетать вниз без последствий для всех последующих блоков
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы