а я опять по другому сделал =)
ширина внешнего развернутого блока в процентах, внутреннего (чтобы текст не переносился) в пикселях, но равен внешнему
$('.cat').css('width', $('.parentCat.current').css('width'));
развернутый блок занимает 50% ширины, свернутые по 10%, марджины соответственно 10% * n и width + margin. вроде работает
----
не могу вам еще сто плюсов оставить, но спасибо огромное за помощь =))