CSS Active Removal
CSS Active Removal
In web development, we often use CSS to beautify the styles of page elements. The :active
pseudo-class is used to define the styles of elements activated by the user. When a user clicks an element, it enters the :active
state, typically changing its appearance. However, sometimes we want to remove the :active
style after the user clicks it. This requires some tricks to achieve this. This article details how to remove the :active
style using CSS.
1. Removing the :active Style Using JavaScript
The first method is to remove the :active
style using JavaScript. We can do this by listening for the element’s click event and removing the :active
style upon click. Here is a sample code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Remove Active Style</title>
<style>
.button:active {
background-color: red;
}
</style>
</head>
<body>
<button class="button" onclick="removeActiveStyle()">Click me</button>
<script>
function removeActiveStyle() {
document.querySelector('.button').addEventListener('mouseup', function() {
this.blur();
});
}
</script>
</body>
</html>
Output:
In the example above, we add the :active
style to the button. When the user clicks the button, its background color changes to red. We then use JavaScript to listen for the button’s mouseup
event and call the blur()
method when the event is triggered to remove the :active
style.
2. Use the :focus pseudo-class instead of the :active style
The second method is to use the :focus
pseudo-class instead of the :active
style. We can set the element’s tabindex
attribute to make it focusable, and then use the :focus
style to simulate the :active
style. Here is a sample code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Remove Active Style</title>
<style>
.button:focus {
background-color: red;
}
</style>
</head>
<body>
<button class="button" tabindex="0">Click me</button>
</body>
</html>
Output:
In the example above, we add a :focus
style to the button. When the button receives focus, its background color changes to red. By setting the button’s tabindex
property to 0
, we make it keyboard-focusable, thus simulating the :active
style.
3. Remove the :active Style Using CSS Animation
The third method is to use CSS animation to remove the :active
style. We can remove the :active
style by setting a short animation effect. Here’s an example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Remove Active Style</title>
<style>
.button:active {
background-color: red;
animation: removeActive 0.1s forwards;
}
@keyframes removeActive {
to {
background-color: initial;
}
}
</style>
</head>
<body>
<button class="button">Click me</button>
</body>
</html>
Output:
In the example above, we add a :active
style and an animation to the button. When the user clicks the button, the background color changes to red, and a CSS animation returns the background color to its original value after 0.1 seconds, removing the :active
style.
4. Using CSS Variables to Remove the :active Style
The fourth method is to use CSS variables to remove the :active
style. We can define a CSS variable to store the :active
style, and then set the variable value to the initial value when we need to remove the :active
style. Here is a sample code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Remove Active Style</title>
<style>
:root {
--active-color: red;
}
.button:active {
background-color: var(--active-color);
}
.button.remove-active:active {
--active-color: initial;
}
</style>
</head>
<body>
<button class="button remove-active">Click me</button>
</body>
</html>
Output:
In the example above, we define a variable named --active-color
to store the color value of the :active
style. When the user clicks the button, the button’s background color changes to the value of --active-color
. Then, by adding the remove-active
class to the button, we remove the :active
style and set the value of --active-color
to its initial value.
5. Remove the :active Style Using a CSS Pseudo-Element
The fifth method is to remove the :active
style using a CSS pseudo-element. We can remove the :active
style by using a pseudo-element within the :active
style and then setting the styles within the pseudo-element to their initial values. Here is a sample code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Remove Active Style</title>
<style>
.button:active::after {
content: '';
display: block;
width: 100%;
height: 100%;
background-color: red;
}
.button:active::after {
background-color: initial;
}
</style>
</head>
<body>
<button class="button">Click me</button>
</body>
</html>
Output:
In the example above, we add a :active
style to the button and use the ::after
pseudo-element within the :active
style to add a red background. We then remove the :active
style by setting the background color to its initial value within the pseudo-element’s style.