I can't get this to work in a snippet here, so here's my test page on my github pages site: .html
Note the top row labeled <svg>:
, the two rectangles. They are the same custom element tag with different font-sizes. The left rectangle uses the CSS default of font-size:0
, the right one uses font-size:2rem
. The difference in height between the two is 8px
, which is 1/4 of the 32px
font size. If you set the height to 1rem
then the height difference shrinks to 4px
.
Here is a screenshot with the elements' padding set to zero, so that the extra height is easily visible:
This is the template:
<template id="t1">
<svg viewbox="0 0 16 16" width="48" height="48">
<rect width="16" height="16"/>
</svg>
</template>
This is the <div>
in question:
<div>
<label for="elm"><svg>:</label>
<my-elm1 id="elm"></my-elm1>
<span>span</span>
<my-elm1 id="elmXtra" style="font-size:2rem;"></my-elm1>
</div>
Not much to it. The <svg>
is 48px
tall in both cases. The extra height is all in the custom element, and all at the bottom of the element.
I can reproduce this in the latest versions of Chrome and Firefox on Windows 11. Why does setting a font-size greater than zero add height to this custom element? It forces me to hard set font-size:0
in CSS, otherwise it tends to inherit something > 0.
If it helps, source code is here, two files: wc-bugs.html and wc-bugs.js