JSFiddle - React, Tailwind, and code Playground

by greatCar

HTML

<div id="content"></div>
<div id="calculated"></div>
<div id="rendered"></div>
<br />
<span class="my_class">Hello World</span>

CSS

.my_class{
    font:12px Arial;
    white-space: nowrap;
}
.textDimensionCalculation {
    position: absolute;
    visibility: hidden;
    height: auto;
    width: auto;
    white-space: nowrap;
}

JavaScript

var calculateWordDimensions = function(text, classes, escape) {
    classes = classes || [];

    if (escape === undefined) {
        escape = true;
    }

    classes.push('textDimensionCalculation');

    var div = document.createElement('div');
    div.setAttribute('class', classes.join(' '));

    if (escape) {
        $(div).text(text);
    } else {
        div.innerHTML = text;
    }

    document.body.appendChild(div);

    var dimensions = {
        width : jQuery(div).outerWidth(),
        height : jQuery(div).outerHeight()
    };

    div.parentNode.removeChild(div);

    return dimensions;
};

var dimensions = calculateWordDimensions('Hello World',['my_class']);

$("#calculated").html('Div calculated width ' + dimensions.width);

$("#rendered").html("Span rendered text width "+$("span").width());