Ответ 1
В CSS все четыре поля: и заполнение: проценты относятся к ширине... хотя это может показаться бессмысленным. Это так, как спецификация CSS, вы ничего не можете с этим поделать.
Можете ли вы сделать то, что хотите, вместо "ex" (или "em" )? То, как я привык видеть "текучие" значения для поля/заполнения, указанным... и это может быть менее проблематичным, чем проценты. (Хотя у меня нет соответствующего опыта из первых рук, я подозреваю, что чрезвычайно длинные рекомендации по вашим рассчитанным процентным значениям помогут вам позже установить проблемы с несовместимостью браузера. Мой стиль заключается в том, чтобы ограничить проценты CSS целыми числами, если это вообще возможно, или иногда возможно одна, а может быть, даже две цифры после десятичной точки.)
Если вы действительно хотите, чтобы точное пустое вертикальное пространство произвольного размера составляло процент от контейнера, первое, что приходит мне в голову, это отдельный пустой <div> с спецификацией CSS "height: nn%". Или, возможно, что-то другое, о котором вы указываете, уже обрабатывает вертикальные размеры, которые вы так хотите (так как казалось бы, поля на самом деле ничего не делают при вертикальном изменении размера).