In a large amount of browsers, the computed style for an element's line-height is normal by default.

If it is specified by any other means (e.g. ancestor has a line-height or the element has a line-height specified), it is either a CSS length.

To solve this problem, we create a vanilla element of the same nodeName (e.g. h2 if it is an h2), apply the original element's font-size, and return the element offsetHeight. This is the height of 1 line of the element (i.e. line-height).

In IE6, numericfont-sizes (e.g. font-size: 2.3) are returned without a unit.

To solve this problem, we treat this number as an em since it is relative as well. To do that, we set the element's style to "numeric value" + "em", compute and save the font-size, remove the temporary style. This conversion gives us the unit in pt which we know how to deal with from before.