Пропорции блоков на css. Есть ли современное решение?
На дворе уже 2020 год, а для создания блока с заданными пропорциями до сих пор используется padding-top в процентах.
Всё бы ничего, но контент внутри такого блока надо делать с абсолютным позиционированием, а это приносит свои минусы.
Может есть какое-то более современное решение, про которое я не знаю? Может через гриды как-нибудь?
Подробнее, если описание непонятно: например нам надо сделать блок с картинкой, который всегда будет квадратным, вне зависимости от пропорций картинки внутри него. Так же это часто используется для адаптивных оберток видео.
Froggyweb, ну это ссылка на вопрос) А решения у него нет. В ответах там тот старый способ с padding-top, и использование относительных единиц, что просто делает его резиновым и убивает всю отзывчивость верстки.
Да, есть свойство aspect-ratio которое потихоньку начинает появляться в современных браузерах. Однако, поигравшись с ним немного - могу сказать что пока что использовать его на практике смысла никакого, придётся подождать пару лет как минимум.
На всякий случай ещё дам ссылку на статью, посвящённую разработке этого свойства.
Вариант №1 (статический) Блок с картинкой, который всегда будет квадратным, вне зависимости от пропорций картинки внутри него: https://codepen.io/codeshonpen/pen/Rwrpeap
Искуственный Интеллект, да не, нормальные варианты, особенно если их объединить медиазапросом. Например увеличиваем в vw до определенного размера экрана, потом делаем статикой.
Но они не универсальны. Если к примеру нам нужно отталкиваться от размера самой картинки, и при этом обрезать её до нужных пропорций. Или нужно использовать размер родительских блоков в сетке, а не всего viewport. Тогда возникают проблемы. Да и vw несколько косячная, она же не учитывает ширину скроллбара