This can be done without using JavaScript or an extra element for each line.
HTML
<span class="marker"><span class="marker"><span class="marker">
consectetur adipiscing elit. Nam at sem eu ligula porttitor iaculis volutpat
non lacus.
</span></span></span>
CSS
.marker {
background: #f77;
padding: 3px 0;
position: relative;
left: -10px;
line-height: 30px;
}
.marker .marker { left: 20px; }
.marker .marker .marker { left: -10px; }
See how it works on fiddle 3tP8m.
Note: An ancestor of .marker
element should have proper padding
to contain this element correctly.
All credits of this technic goes to Artem Polikarpov. See his original advice: “How to mark up the text on flexible bottom layer” (in Russian).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…