как сделать квадратным блок, если у него есть какая-то ширина, я знаю) псевдоэлементу padding-top: 100% и в итоге получается квадрат. но задача в том, чтобы сделать квадрат, имея только высоту блока, притом что она в %.
Есть костыльное решение. В блок положить пропорциональную квадратную картинку с height: 100% (можно ее спрятать, но не display: none, а visibility: hidden; )
Пример https://jsfiddle.net/Vlad_IT/eme9c2ya/1/
Чисто на css такого не сделать, нужен js.
На css можно просто создать иллюзию квадрата, например так
Тут по факту блок не квадратный, просто фоном стоит квадратная картинка.