JSFiddle - React, Tailwind, and code Playground

HTML

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
<br><br>
Lorem ipsum dolor sit amet, consectetur adipisicing elit
<br>
Lorem ipsum
<br>
Lorem ipsum dolor sit amet, consectetur

SCSS

body {
    background:url(http://placekitten.com/800/600);
}
div.container {
    border:1px solid white;
    padding:10px;
    width:100%;
    margin:0 auto;
    box-sizing:border-box;
    background:white;
    position:relative;
    z-index:-1;
}
div.inner-container {
    overflow:hidden;          
    position:relative;
    width:100%;
}
div.inner-container span.inner {
    background:white;   
    padding-right:2px;
}
div.inner-container span.outer {        
    position:relative;  
    display:inline-block;
    font-size:20px;
    line-height:130%;    
}
div.inner-container span.inner:after {
    content:'';    
    position:absolute;
    width:300vw;
    border-bottom:0.05em dotted black;
    left:0;
    bottom:0.35em;  
    z-index:-1;
}

JavaScript

$(document.body).contents().wrapAll("<div class='container'>")
                .closest('div.container')
                .wrapInner("<div class='inner-container'>")
                .end().filter(function(i,e){
                     return e.nodeType == 3;
                 }).wrap("<span class='outer'>")
                   .wrap("<span class='inner'>");