only getComputedTextLength() once