偏移宽度始终为"0"



我被一些东西困住了,而创造了一些东西。我想将div的宽度和高度设置为相同。我设置div的宽度为14%div的高度为offsetWidth。所以div的形状是正方形的。但是,offsetWidth总是0。我已经尝试了一些东西,但offsetWidth是零。

代码

<body></body>
<script>
var elem = document.createElement('div');
elem.style.display = 'inline-block';
elem.style.backgroundColor = '#00B3FF';
elem.style.width = '14%';
elem.innerText = elem.offsetWidth;
document.body.appendChild(elem);
</script>

小提琴

你所要做的就是放置这段代码:

document.body.appendChild(elem);

:上方

elem.innerText = elem.offsetWidth;

所以它看起来像这样:

var elem = document.createElement('div');
elem.style.display = 'inline-block';
elem.style.backgroundColor = '#00B3FF';
elem.style.width = '14%';
document.body.appendChild(elem);
elem.innerText = elem.offsetWidth;

,因为宽度是0,直到你将div附加到body。

你为什么不使用css?使用长宽比:1/1,你会得到同样的结果。

https://developer.mozilla.org/en-US/docs/Web/CSS/aspect-ratio

我认为一些父元素有display: hidden或没有。如果元素是隐藏的(例如,通过在元素或它的一个祖先元素上设置style.display为"none"),则返回0。

也许这个文档可以帮助:https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetWidth

相关内容

  • 没有找到相关文章

最新更新