This is an oddity of using em
to set the font sizes of nested elements, because in this case, em
is a relative unit, not an absolute unit.
Basically, what happens is that #content
is set to 16px, an absolute unit. Then, the font size of <table>
is set to 0.7em, or ~11px (70% of the original font size). Finally, the font size of <td>
is set to 0.8em. But surprise! The font size of <td>
is actually 80% of the font size of <table>
(remember, it was ~11px), or ~8.92px. See this fiddle for another example: https://jsfiddle.net/s0zfabrL/
Because of this, you have to be careful when using em
to set font sizes. You can safely use the rem
unit to set font sizes of nested elements, because it will always be a percentage of the base font size, but rem
is only supported in IE9 or later.