If the height of the DOM node is/can be dynamic then you probably cannot measure it before it exists in the DOM, unless you somehow take into consideration all possible scenarios (font-size, padding/margin/border, actual size, etc.)
A viable option is to inject the node into the DOM, visually hidden, and measure things, and only then reveal it.
Here is a working demo of how to measure an element by briefly adding it to the DOM and inspecting its height, then removing it. This method might be costly since the node is cloned, so the added styles won't affect it afterwards and all DOM events will be removed from it.
If the inspected node has a lot of sub-nodes, this might not be efficient, but stil can be quite handy.
function getNodeHeight(node) {
var height, clone = node.cloneNode(true)
// hide the meassured (cloned) element
clone.style.cssText = "position:fixed; top:-9999px; opacity:0;"
// add the clone to the DOM
document.body.appendChild(clone)
// meassure it
height = clone.clientHeight
// cleaup
clone.parentNode.removeChild(clone)
return height
}
var newDiv = document.createElement("div");
newDiv.innerHTML = `Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<h1>deserunt mollit anim id est laborum.<h1>`
// print the height of "newDiv"
console.log( getNodeHeight(newDiv) )