
CSS Topics
- CSS Intro
- CSS How To
- CSS Editors
- CSS Properties
- CSS Selectors
- .class
- .class1.class2
- .class1 .class2
- #id
- * (all)
- element
- element.class
- element,element
- element element
- element>element
- element+element
- element1~element2
- [attribute]
- [attribute=value]
- [attribute~=value]
- [attribute|=value]
- [attribute^=value]
- [attribute$=value]
- [attribute*=value]
- :active
- ::after
- ::before
- :checked
- :default
- :disabled
- :empty
- :enabled
- :first-child
- ::first-letter
- ::first-line
- :first-of-type
- :focus
- :fullscreen
- :has()
- :hover
- :in-range
- :indeterminate
- :invalid
- :lang()
- :last-child
- :last-of-type
- :link
- ::marker
- :not()
- :nth-child()
- :nth-last-child()
- :nth-last-of-type()
- :nth-of-type()
- :only-of-type
- :only-child
- :optional
- :out-of-range
- ::placeholder
- :read-only
- :read-write
- :required
- :root
- ::selection
- :target
- :valid
- :visited
- CSS Comments
- CSS Length
- CSS Image Sprites
- CSS Grid Layout
- CSS Grid Flexbox
- CSS @charset Rule
- CSS @font-face Rule
- CSS @import Rule
- CSS @keyframes Rule
- CSS @media Rule
CSS ::first-letter Selector

Photo Credit to CodeToFun
Introduction
The ::first-letter
selector in CSS is a pseudo-element used to apply styles to the first letter of the first line of a block-level element.
This is often used to create a visually distinct typographical effect, such as a drop cap in articles or blog posts.
Syntax
The signature of the ::first-letter
Selector is as follows:
selector::first-letter {
/* CSS properties */
}
- The
selector
can be any block-level element such as<p>
,<div>
, or<article>
. - The
::first-letter
pseudo-element targets only the very first letter in the block of text.
Example
Here is an example that demonstrates how to style the first letter of a paragraph:
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS ::first-letter Selector Example</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<p>
Welcome to the world of CSS! This paragraph demonstrates how you can use the
::first-letter selector to create a styled drop cap effect.
</p>
</body>
</html>
CSS
/* Style the first letter */
p::first-letter {
font-size: 2.5rem;
font-weight: bold;
color: #3498db;
float: left;
margin-right: 5px;
line-height: 1;
}
In this example:
- The first letter of the paragraph (
"W"
) is styled with a larger font size, bold weight, and a custom color. - The
float: left
property pushes the first letter to the left, creating a drop cap effect, whilemargin-right
adds spacing between the drop cap and the rest of the text.
Usage Tips
- The
::first-letter
pseudo-element can be combined with other CSS properties such astext-transform
,font-style
, andletter-spacing
to create various stylistic effects. - Typically used for typographical emphasis in the first letter of a paragraph or section heading.
- Keep in mind that only block-level elements support the
::first-letter
pseudo-element.
Supported Properties
The CSS properties that can be applied to ::first-letter
include:
- font properties (e.g., font-size, font-weight)
- color
- background
- padding and margin
- text-transform and letter-spacing
- float
- line-height
Common Pitfalls
- Limited Elements: The
::first-letter
pseudo-element only works with block-level elements such as paragraphs or headings. Inline elements like<span>
or<a>
do not support it. - Multiple Letters: It applies only to the first letter of the block. If your text starts with a number or special character, the pseudo-element will affect that instead.
- Browser Consistency: While modern browsers support
::first-letter
, always test across browsers to ensure consistent rendering.
Example with Drop Cap
In traditional publishing, drop caps are often used to begin chapters or sections. Hereβs a more sophisticated example:
article p::first-letter {
font-size: 3rem;
font-family: 'Georgia', serif;
float: left;
line-height: 0.9;
margin-right: 10px;
color: #2c3e50;
}
This creates a larger drop cap effect with a serif font, providing an elegant, professional look.
Conclusion
The ::first-letter
selector is a powerful tool for applying unique styles to the first letter of a block-level element, making it perfect for creating standout typographical effects.
Use this pseudo-element to enhance the visual impact of your content and improve readability on your website.
Join our Community:
Author

For over eight years, I worked as a full-stack web developer. Now, I have chosen my profession as a full-time blogger at codetofun.com.
Buy me a coffee to make codetofun.com free for everyone.
Buy me a Coffee
If you have any doubts regarding this article (CSS ::first-letter Selector), please comment here. I will help you immediately.