Адаптивные квадраты (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, время: 12:06. |