Расчитывать все значения через JS - очень плохо.
Использовать только px - можно и в контексте адаптивной верстки. Все зависит от макета.
Для адаптивной верстки идеально подходят flex-boxы, которые позволяют делать резиновую структуру чуть проще. Но в этом случае придется либо делать fallback для IE, либо применять полифил, что имеет свои минусы.