I use CSS to style some radio buttons as tabs. I would like the "selected" font to be bold. Of course, this increases the size of the tab as the text takes up more space. I would like to find a way for the text to shift from bold to non-bold without changing the “tab”


Without setting a fixed width, is there a tricky and clean way to make text the size of a bold font without boldness?
The only method I can think of would be to have bold text (so that the text exists twice in HTML), but with visibility: hidden .
Markup:
<label class="tab active"><input type="radio" name="someTabs" value="someValueA" />Tab 1</label> <label class="tab"><input type="radio" name="someTabs" value="someValueB" />Tab 2 (with longer text)</label>
Relevant CSS as of now:
.tab { display: block; font-size: 1.2em; height: 2em; line-height: 2em; margin-right: 1px; padding: 0 2em; position: relative; text-align: center; float: left; } .tab.active, .tab:hover { font-weight: bold; } .tab input[type=radio] { display: none; }
source share