Yup the easy way to circumvent the problem (its actually not a bug

) is to specify the line-height in unit-less numbers (e.g.: line-height: 1.5

.
When you specify the line-height with units, the browser calculates the line-height for the parent (usually the body), then applies that same line-height to every child element
without re-calculation, even if its a relative unit. For example:
HTML:
body { font-size: 14px; line-height: 2em; }
.small { font-size: 10px; }
<body>
<p>Text</p>
<p class="small">Small text></p>
</body>
The browser first calculates that 2*14 = 28px, and applies that to the first paragraph, just as youd expect. You would then expect the browser to make the small texts line-height 20px, right? (2*10 = 20.) Wrong-o. The browser inherits the
calculated value of the line-height, not the specified value thus, everything in this document will have a line-height of 28px, no matter what the size of the text.
On the other hand, if you do this:
HTML:
body { font-size: 14px; line-height: 2; }
.small { font-size: 10px; }
<body>
<p>Text</p>
<p class="small">Small text></p>
</body>
Youll get what youd expect the browser will re-calculate the line-height for each child element.
Its all specified like this by the W3C for some strange reason.