Today I troubleshot: Narrow non-breaking space not rendering
Posted on
Trouble
Narrow non-breaking spaces ( ) would not render on a webpage.
First hint
I found out that the culprit was the sans-serif font family in use.
Narrowing down the problem
After further investigation and especially some tinkering on Codepen I came to these statements:
 inregularfont type is rendered initalicfont type style is rendered inboldfont type is NOT rendered
The third statements appears to me as a bug to be honest.
Some googling brought me to this additional information:
In this case, narrow non-break space doesn't appear correctly because the glyph (U+202F) doesn't exist in Georgia font.
Source: sumatrapdf issue tracker ("narrow non-break space" not displayed well in ePUB and PDF files)
At this stage I realized that sans-serif bold may also miss this glyph, and
that I will need to work around that.
Solution or rather workaround
First I thought about CSS, but it is impossible to style HTML entities like
  because they are just characters.
My final solution was to wrap this HTML entity around a HTML tag. I even created
a custom one for the occasion. Inspired by the entity name, I came up
with the <nnbsp> element.
The workaround is to assign font-weight: normal; to this custom tag.
Of course I could have also come up with an utility class, but I found it take
more real estate in the code.
Note: This can only work if the regular type for the font includes the
narrow non-breaking space glyph, what is the case for sans-serif.
Example solution
HTML Markup:
<p class="u-sans-serif">
<span class="u-bold">
FIX Narrow non-breaking space issue<nnbsp> </nnbsp>!
</span>
</p>
Accompanying CSS:
.u-sans-serif {
font-family: sans-serif;
}
.u-bold {
font-weight: bold;
}
/* This is the workaround. */
nnbsp {
font-weight: normal; /* Force Regular type rather than Bold. */
}