Mastering Pseudo-Classes and Pseudo-Elements in CSS: Elevate Your Web Design Skills
Shahrukh Butt
I create SAAS products & websites | Founder & Director General of Tzanum Tech
CSS (Cascading Style Sheets) is integral to web design, providing the power to control the presentation of web content meticulously. Among its extensive features, pseudo-classes and pseudo-elements offer advanced capabilities to style web elements dynamically and creatively.
Whether you're new to CSS or aiming to refine your skills, mastering these properties can significantly enhance your web design. Let’s dive into some essential pseudo-classes and pseudo-elements that can transform your web design.
Pseudo-Classes
Changes the color of a link when the mouse hovers over it.
a:hover {
color: red;
}
Changes the background color of a button when it is clicked.
button:active {
background-color: yellow;
}
Changes the border color of an input field when it is focused.
input:focus {
border-color: blue;
}
(n)
Selects the nth child of its parent.
<ul>
<li>First item</li>
<li>Second item (This will have a light blue background)</li>
<li>Third item</li>
<li>Fourth item</li>
</ul>
<style>
li:nth-child(2) {
background-color: lightblue;
}
</style>
Selects the first child of its parent.
<div>
<p>This is the first paragraph inside a div.</p>
<p>This is the second paragraph inside a div.</p>
<p>This is the third paragraph inside a div.</p>
</div>
<style>
p:first-child {
font-weight: bold;
}
</style>
Selects the last child of its parent.
<div>
<p>This is the first paragraph inside a div.</p>
<p>This is the second paragraph inside a div.</p>
<p>This is the third paragraph inside a div. It will be italic.</p>
</div>
<style>
p:last-child {
font-style: italic;
}
</style>
(n)
Selects the nth child of its type.
领英推荐
<p>This is the first paragraph of type 'p'.</p>
<div>
<p>This is the first paragraph inside a div.</p>
<p>This is the second paragraph inside a div. It will be green.</p>
<p>This is the third paragraph inside a div.</p>
</div>
<p>This is the second paragraph of type 'p'. It will be green.</p>
<p>This is the third paragraph of type 'p'.</p>
<style>
p:nth-of-type(2) {
color: green;
}
</style>
(selector)
Selects elements that do not match the selector.
<p>This paragraph will be gray.</p>
<p class="intro">This paragraph will not be affected.</p>
<p>Another paragraph that will be gray.</p>
<style>
p:not(.intro) {
color: gray;
}
</style>
Pseudo-Elements
::before
Inserts content before an element.
p::before {
content: "Note: ";
font-weight: bold;
color: red;
}
::after
Inserts content after an element.
p::after {
content: " [End]";
font-weight: bold;
color: blue;
}
::first-letter
Styles the first letter of an element.
p::first-letter {
font-size: 2em;
color: purple;
}
::first-line
Styles the first line of an element.
p::first-line {
font-weight: bold;
}
::selection
Styles the part of an element that is selected by a user.
::selection {
background-color: yellow;
color: black;
}
Conclusion
By mastering these CSS pseudo-classes and pseudo-elements, you can elevate the visual appeal and functionality of your web designs. For more detailed examples and additional resources, visit my GitHub repository. If you prefer a video explanation, check out this comprehensive YouTube tutorial.