A pure CSS solution seems unlikely to me for this behavior. Therefore, if you switch to using javascript, it might look like this:
HTML:
<div id="tabs"> <p><span>Text!</span><span>Next tab</span></p> <p><span>Longer text!</span><span>Next tab</span></p> <p><span>Even more longer text !</span><span>Next tab</span></p> </div>
JavaScript:
var tabs = document.getElementById('tabs'); var ps = tabs.getElementsByTagName('p'); var p; var spans; var span; var w; var wTab = 70; for (var i = 0; i < ps.length; i++) { p = ps.item(i); spans = p.getElementsByTagName('span'); for (var j = 0; j < spans.length - 1; j++) { span = spans.item(j); w = span.offsetWidth; w = Math.ceil(w / wTab) * wTab - w; span.style.paddingRight = w + 'px'; } }
See also Demo script .
Disclaimer: I am noob in javascript and, of course, do not know anything about javascript frameworks, so it is very likely that this procedure can be optimized.
source share