A pseudo-element is a keyword added to a selector that lets you style specific parts of an element. For example, you can style the first line of a paragraph, add content before or after an element, or create complex effects with minimal code. Pseudo-elements are denoted by a double colon (::) (or : in legacy CSS).
Syntax
selector::pseudo-element{
property: value
}
::(the double colon is a syntax for pseudo-elements)
Commonly Used CSS Pseudo-Elements
1. ::before
The ::before pseudo-element allows you to insert content before the actual content of an element.
HTML
<!--Driver Code Starts{-->
<html>
<head>
<!--Driver Code Ends }-->
<style>
p::before {
content: "✨ ";
color: gold;
}
</style>
<!--Driver Code Starts{-->
</head>
<body>
<p>This is a paragraph.</p>
</body>
</html>
<!--Driver Code Ends }-->
2. ::after
Similar to ::before, the ::after pseudo-element inserts content after the element’s content. It is often used to add icons, styling cues, or additional details.
HTML
<!--Driver Code Starts{-->
<html>
<head>
<!--Driver Code Ends }-->
<style>
p::after {
content: " 🔥";
color: red;
}
</style>
<!--Driver Code Starts{-->
</head>
<body>
<p>This is a paragraph.</p>
</body>
</html>
<!--Driver Code Ends }-->
3. ::first-letter
The ::first-letter pseudo-element targets the first letter of a block of text, generally used for decorative initials in paragraphs.
HTML
<!--Driver Code Starts{-->
<html>
<head>
<!--Driver Code Ends }-->
<style>
p::first-letter {
font-size: 2em;
color: blue;
}
</style>
<!--Driver Code Starts{-->
</head>
<body>
<p>This is a paragraph.</p>
</body>
</html>
<!--Driver Code Ends }-->
4. ::first-line
The ::first-line pseudo-element is used to style the first line of a block of text. It is particularly useful for emphasizing the introduction of paragraphs.
HTML
<!--Driver Code Starts{-->
<html>
<head>
<!--Driver Code Ends }-->
<style>
p::first-line {
font-weight: bold;
color: green;
}
</style>
<!--Driver Code Starts{-->
</head>
<body>
<p>This is a longer paragraph to demonstrate the <br>
first-line styling in action.</p>
</body>
</html>
<!--Driver Code Ends }-->
5. ::placeholder
The ::placeholder pseudo-element styles placeholder text inside input fields.
HTML
<!--Driver Code Starts{-->
<html>
<head>
<style>
<!--Driver Code Ends }-->
input::placeholder {
color: gray;
font-style: italic;
}
</style>
</head>
<!--Driver Code Starts{-->
<body>
<input type="text" placeholder="Enter your name">
</body>
</html>
<!--Driver Code Ends }-->
6. ::marker
Styles the marker of list items.
HTML
<!--Driver Code Starts{-->
<html>
<head>
<!--Driver Code Ends }-->
<style>
li::marker {
color: purple;
font-size: 1.5em;
}
</style>
<!--Driver Code Starts{-->
</head>
<body>
<ul>
<li>First item</li>
<li>Second item</li>
<li>Third item</li>
</ul>
</body>
</html>
<!--Driver Code Ends }-->
7. ::selection
Styles the selected text.
HTML
<!--Driver Code Starts{-->
<html>
<head>
<!--Driver Code Ends }-->
<style>
::selection {
background: yellow;
color:green;
}
</style>
<!--Driver Code Starts{-->
</head>
<body>
<p>Select some text in this paragraph to see the effect.</p>
</body>
</html>
<!--Driver Code Ends }-->
8. ::backdrop
Styles the backdrop of modal elements like <dialog>. It helps to style the background of the dialog box opened as a modal on the screen of the user.
HTML
<!--Driver Code Starts{-->
<html>
<head>
<style>
<!--Driver Code Ends }-->
dialog::backdrop {
background: rgba(232, 233, 0, 0.5);
}
<!--Driver Code Starts{-->
dialog {
border: none;
padding: 20px;
background: white;
}
</style>
</head>
<body>
<dialog id="myDialog">This is a dialog box.</dialog>
<script>
const dialog = document.getElementById("myDialog");
if (dialog) {
dialog.showModal();
}
</script>
</body>
</html>
<!--Driver Code Ends }-->
Pseudo-elements for Specific Contexts
::file-selector-button for Media and Interactivity
This pseudo-element selector helps to style the button of a input type file.
HTML
<!--Driver Code Starts{-->
<html>
<head>
<!--Driver Code Ends }-->
<style>
::file-selector-button {
background-color: #4CAF50;
color: white;
padding: 10px 20px;
border: none;
border-radius: 5px;
cursor: pointer;
font-size: 16px;
}
::file-selector-button:hover {
background-color: #45a049;
}
</style>
</head>
<body>
<!--Driver Code Starts{-->
<h2>Custom File Selector Button</h2>
<input type="file">
</body>
</html>
<!--Driver Code Ends }-->
::spelling-error for Error Handling
The ::spelling-error pseudo-element styles text that has been flagged as a spelling error by the browser’s spell-check functionality.
HTML
<!--Driver Code Starts{-->
<html>
<head>
<!--Driver Code Ends }-->
<style>
::spelling-error {
background-color: #ffdddd;
text-decoration: underline solid red;
}
</style>
<!--Driver Code Starts{-->
</head>
<body>
<h2>Spelling Error Detection</h2>
<input type="text" value="Ths is a splling eror" spellcheck="true">
</body>
</html>
<!--Driver Code Ends }-->
Similar Reads
CSS Tutorial
CSS stands for Cascading Style Sheets. It is a stylesheet language used to style and enhance website presentation. CSS is one of the main three components of a webpage along with HTML and JavaScript.HTML adds Structure to a web page.JavaScript adds logic to it and CSS makes it visually appealing or
6 min read
CSS Introduction
CSS (Cascading Style Sheets) is a language designed to simplify the process of making web pages presentable. It allows you to apply styles to HTML documents by prescribing colors, fonts, spacing, and positioning.The main advantages are the separation of content (in HTML) and styling (in CSS) and the
5 min read
CSS Syntax
CSS (Cascading Style Sheets) is a stylesheet language used to describe the presentation of a document written in HTML. Understanding CSS syntax is fundamental for creating visually appealing and well-structured web pages. Basic CSS SyntaxCSS is written as rulesets. A ruleset consists of a selector a
6 min read
CSS Selectors
CSS selectors are used to target HTML elements on your pages, allowing you to apply styles based on their ID, class, type attributes, and more. There are mainly 5 types of selectors.Basic CSS Selectors: These are used to target elements by tag, .class, or #id for fundamental styling needs.Combinator
7 min read
CSS Comments
CSS comments are used to add notes or explanations to your code, helping you and others understand it better. They start with /* and end with */ and can be used for both single-line and multi-line comments. Note: Comments are ignored by browsers, so they wonât affect how your webpage looks or works.
2 min read
CSS Colors
CSS colors are used to set the color of different parts of a webpage, like text, background, and borders. This helps make the page look more attractive and easier to read. You can define colors using names, hex codes, RGB values, and more. You can try different formats of colors here- #content-ifram
6 min read
CSS Borders
Borders in CSS are used to create a visible outline around an element. They can be customized in terms of Width: The thickness of the border.Style: The appearance of the border (solid, dashed, dotted, etc.).Color: The color of the border.You can try different types of borders here- #custom-iframe{ h
6 min read
CSS Margins
CSS margins are used to create space around an element, separating it from neighboring elements and the edges of the webpage. They control the layout by adjusting the distance between elements, providing better organization and readability. Syntax:body { margin: value;}[GFGTABS] HTML <!--Driver C
4 min read
CSS Height and Width
Height and Width in CSS are used to set the height and width of boxes. Their values can be set using length, percentage, or auto. Width and HeightThe width and height properties in CSS are used to define the dimensions of an element. The values can be set in various units, such as pixels (px), centi
4 min read
CSS Outline
CSS outline is a property used to draw a line around an element's border. It does not affect the layout, unlike borders. It's often used to highlight elements, providing a visual emphasis without altering the dimensions of the element. Syntaxselector{ outline: outline-width outline-type outline-colo
4 min read