The reason you cannot set F
to be non-bold is because first-letter
does not apply to inline elements.
You can demonstrate this easily by looking at the following snippet. The span
is displayed as a block element and then correctly removes the bold from the first-letter:
p::first-letter {
font-weight: bold;
}
p > span {
display: block;
}
p > span::first-letter {
font-weight: normal;
}
<div>
<p>
<span>
Foo
</span>
</p>
<p>
Bar
</p>
</div>
The reason is described further in the documentation here:
The ::first-letter CSS pseudo-element applies styles to the first
letter of the first line of a block-level element, but only when not
preceded by other content (such as images or inline tables).