js通过createElement创建一个li,想要计算这个li的宽度,但是没插入页面之前计算宽度是0,插入页面之后就能计算出li的真实宽度
class Tab{
constructor(){
const tab = document.createElement("ul")
const li = document.createElement("li")
tab.appendChild(li)
li.textContent = "test"
// 1、这个时候如果获取li的宽度(li.offsetWidth),是0
// 如何在tab插入真实dom上后再去计算 li.offsetWidth?
return tab
}
}
const tab = new Tab()
const root = document.getElementById('root')
root.appendChild(tab)
// 2、这个时候再去计算 li的offsetWidth 就不是0
// li 在render到页面后会不会触发什么事件,通过监听这个事件来获取呢?
因为在插入之前,各种样式属性都没有应用上,浏览器并不知道你里边的内容该以怎样的方式来呈现。
插入到文档中以后,才会被浏览器渲染出来,进而计算出盒模型相关的属性。