The :link
pseudo-class specifically targets <a>
elements that have an href
attribute and have not yet been visited. It is often used to set the default state for links.
Example 1: Basic Unvisited Link
/* Style for a link that has not been visited */
.my-link:link {
color: #007bff;
text-decoration: none;
}
Explanation
This code sets the color of all unvisited links to blue and removes the default underline, providing a clean, initial appearance for navigation.
Example 2: Combining :link
and :visited
/* Style for unvisited links */
a:link {
color: #dc3545;
}
/* Style for visited links */
a:visited {
color: #6c757d;
}
Explanation
This is a classic example of setting up the two primary states of a link: one color for links the user has not yet clicked, and another for those they have.
Example 3: Styling an Unvisited Button-like Link
/* Style for a link styled as a button */
.button-link:link {
background-color: #28a745;
color: white;
padding: 10px 15px;
border-radius: 5px;
}
Explanation
The :link
pseudo-class can be used to style links that are designed to look like buttons, ensuring that only unvisited links get the primary "call to action" styling.
Example 4: Using :link
with a Specific Class
/* Style for primary navigation links that are unvisited */
.nav-primary:link {
font-weight: bold;
}
Explanation
This example demonstrates how to apply a specific style (bold text) only to unvisited links that also have a particular class, allowing for more targeted styling.
Example 5: The LVHA Order
/* 1. :link */
a:link {
color: #007bff;
}
/* 2. :visited */
a:visited {
color: #6c757d;
}
/* 3. :hover */
a:hover {
color: #0056b3;
}
/* 4. :active */
a:active {
color: #dc3545;
}
Explanation
This shows the recommended order for defining link-related pseudo-classes: :link
, :visited
, :hover
, :active
(LVHA). This order ensures that the styles are applied correctly due to CSS specificity rules.