clientWidth,offsetWidth,scrollWidth等方法无法准确的获得元素的宽度

我在做一个文字滚动轮播的功能,由于文字是自定义的,需要动态去获取文本的长度,我用下面的方式去获得标签的宽度来得到文本的长度,为什么无法准确的得到div标签的宽度呢总是多出了几百px

 const d = document.createElement('div');
      d.innerHTML = data.description;
      d.style.setProperty('white-space', 'nowrap;');
      document.body.appendChild(d);
      const width = d.clientWidth;

单纯从你这段代码来说,由于div是块级元素,默认是占一整行,所以获取的长度也是整行的长度,是不能反映出文本的长度,可以试着设置div的display属性为inline-block