use round(clientWidth * dpr)
use round(getBoundingRect * dpr)
use ResizeObserver
(warning: no support for device-pixel-content-box)