Ну тут сложно сказать. Вообще, это не очень хороший тон. Все-таки для позиционирования лучше использовать CSS.
Однако, я, например, использую meteor как фреймворк. Если вкратце, то у меня страница собирается полностью на клиенте с помощью JS. Таким образом, я иногда хитрю и позиционирую особо сложные блоки в JS при генерации HTML этого блока (например, на основе введенных юзером данных).
Про вычисление размеров - это смотря зачем. У нас есть конструктор, где можно таскать край блока для задания произвольной ширины. Для сохранения в БД нам, естественно, нужно узнавать ширину блока.
Советую вам, уточните вопрос и тогда, может быть, будет более точный ответ :)