Адаптивные квадраты (Flex)
Есть такой html:
<div class="images-set"> <figure> ... </figure> <figure> .... </figure> <figure> <p> <img src="images/desktop/Ic_3.png" alt=""> </p> <figcaption> Your money will always be safe </figcaption> </figure> </div> и css: Код:
.images-set { Квадратные <figure>. Когда уменьшаю по горизонтали размер браузера, они превращаются в прямоугольник. Можно ли средствам flex сделать адаптивные квадраты? |
torsar,
как вариант ... <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style type="text/css"> .images-set { display: flex; flex-direction: row; justify-content: space-between; margin-left: 2%; margin-right: 2%; } .images-set figure { margin: 0; flex-basis: 29vmax; height: 29vmax; background: #fff; border-radius: 4vmax; box-shadow: 0 5px 10px 0 rgba(7,8,63,.50); text-align: center; } @media (max-width: 480px) and (orientation: landscape){ .images-set figure { flex-basis: 29vmin; height: 29vmin; }} @media (orientation: portrait){ .images-set figure { flex-basis: 29vmin; height: 29vmin; }} .images-set img { margin-top: 3px; width: 70%; height: auto; } .images-set figcaption { display: block; text-align: center; padding: 5px 5px 5px 5px; font-size: 1.8vmax; } .images-set p { margin: 2px; margin-bottom: 0; } </style> </head> <body> <div class="images-set"> <figure> ... </figure> <figure> .... </figure> <figure> <p> <img src="https://www.groziodovanos.lt/uploads/images/small/6822.jpg" alt=""> </p> <figcaption> Your money will always be safe </figcaption> </figure> </div> </body> </html> |
Нет, рони
Спрашивают не про это С изменением размера браузера должен меняться и размер <div class="images-set"> Ширина <figure> должна оставаться 30% от родительского div.images-set, но при этом должна меняться и их высота, что бы они оставались квадратными. Сейчас появилось css свойство aspect-ratio, но оно есть только в последнем Хром и Едж (88), а у Файрфокс только для <img> Как без него, только с CSS, непонятно. |
voraa,
сделал квадрат ))) |
Нет. Попробуй сожми окно до размеров, что бы исчезло пустое пространство между <figure> и еще больше. Эти <figure> превратятся в вытянутые вертикально прямоугольники.
(Тут через HTML run это не получается, т.к. не сжимается, а появляется полоса прокрутки, но если вынести в файл и попробовать отдельно...) К тому же задание в 29vw совсем не универсально. Где гарантия, что родительский div будет 100vw, а не станет по какой то причине уже? Интересно принципиально решить задачу, как оставлять квадрат квадратом при изменении ширины. |
voraa,
очередной вариант ))) там же #2 |
Часовой пояс GMT +3, время: 06:25. |