Да, можно, например, с помощью псевдоэлементов. Блок всегда заданных пропорций (высота считается как % от ширины):
https://jsfiddle.net/Ankhena/cLhxv7eq/
В примере всегда квадратный блок, для изменения пропорций нужно изменять %%
Через переменные не получится, потому что:
либо мы знаем ширину в точках или vw - тогда не нужен calc
либо она у нас в процентах - получим проценты, но проценты эти будут от высоты родителя, а не ширины. (Собственно для умножения процентов тоже не нужен calc)
Теперь и
aspect-ratio