Sticky keeps content width, and height to avoid collapse when its state is "fixed". Sticky got width from the offsetWidth of content, but the width is rounded. A better way is to get width from calling getBoundingClientRect(), thank @testerez. To support lower browser (IE8 and lower), we fallback like
var outerRect = outer.getBoundingClientRect();
var width = outerRect.width || outerRect.right - outerRect.left;